GCM: pourquoi mon plantage de l'application dans GCMRegistrar.checkDevice(ce);
J'ai une application simple avec quelques lignes parce que je suis en train d'essayer de comprendre pourquoi mon application se bloque dans GCMRegistrar.checkDevice(ce) (si j'ai supprimer mon application ne plante pas). Quelqu'un peut-il aider? 🙁
:
public class DemoActivity extends Activity {
private String TAG = "** pushAndroidActivity **";
private TextView mDisplay;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
setContentView(R.layout.main);
mDisplay = (TextView) findViewById(R.id.display);
mDisplay.setText("ciao");
}
Manifeste:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.registrazionegcm"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" />
<permission android:name="com.example.registrazionegcm.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.registrazionegcm.permission.C2D_MESSAGE" />
<!-- App receives GCM messages. -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- GCM connects to Google Services. -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- GCM requires a Google account. -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<!-- Keeps the processor from sleeping when a message is received. -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".DemoActivity"
android:label="@string/title_activity_demo" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name="com.google.android.gcm.GCMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.example.registrazionegcm" />
</intent-filter>
</receiver>
<service android:name=".GCMIntentService" />
</application>
Mes erreurs :
10-22 21:54:21.075: E/AndroidRuntime(955): FATAL EXCEPTION: main
10-22 21:54:21.075: E/AndroidRuntime(955): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.registrazionegcm/com.example.registrazionegcm.DemoActivity}: java.lang.UnsupportedOperationException: Device does not have package com.google.android.gsf
10-22 21:54:21.075: E/AndroidRuntime(955): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
10-22 21:54:21.075: E/AndroidRuntime(955): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
10-22 21:54:21.075: E/AndroidRuntime(955): at android.app.ActivityThread.access$600(ActivityThread.java:130)
10-22 21:54:21.075: E/AndroidRuntime(955): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
10-22 21:54:21.075: E/AndroidRuntime(955): at android.os.Handler.dispatchMessage(Handler.java:99)
10-22 21:54:21.075: E/AndroidRuntime(955): at android.os.Looper.loop(Looper.java:137)
10-22 21:54:21.075: E/AndroidRuntime(955): at android.app.ActivityThread.main(ActivityThread.java:4745)
10-22 21:54:21.075: E/AndroidRuntime(955): at java.lang.reflect.Method.invokeNative(Native Method)
10-22 21:54:21.075: E/AndroidRuntime(955): at java.lang.reflect.Method.invoke(Method.java:511)
10-22 21:54:21.075: E/AndroidRuntime(955): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
10-22 21:54:21.075: E/AndroidRuntime(955): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-22 21:54:21.075: E/AndroidRuntime(955): at dalvik.system.NativeStart.main(Native Method)
10-22 21:54:21.075: E/AndroidRuntime(955): Caused by: java.lang.UnsupportedOperationException: Device does not have package com.google.android.gsf
10-22 21:54:21.075: E/AndroidRuntime(955): at com.google.android.gcm.GCMRegistrar.checkDevice(GCMRegistrar.java:98)
10-22 21:54:21.075: E/AndroidRuntime(955): at com.example.registrazionegcm.DemoActivity.onCreate(DemoActivity.java:16)
10-22 21:54:21.075: E/AndroidRuntime(955): at android.app.Activity.performCreate(Activity.java:5008)
10-22 21:54:21.075: E/AndroidRuntime(955): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
10-22 21:54:21.075: E/AndroidRuntime(955): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
10-22 21:54:21.075: E/AndroidRuntime(955): ... 11 more
10-22 21:54:21.085: W/ActivityManager(167): Force finishing activity com.example.registrazionegcm/.DemoActivity
10-22 21:54:21.095: W/WindowManager(167): Failure taking screenshot for (246x410) to layer 21010
10-22 21:54:21.205: I/jdwp(265): Ignoring second debugger -- accepting and dropping
10-22 21:54:21.395: I/Choreographer(167): Skipped 40 frames! The application may be doing too much work on its main thread.
10-22 21:54:21.615: W/ActivityManager(167): Activity pause timeout for ActivityRecord{411d90d0 com.example.registrazionegcm/.DemoActivity}
10-22 21:54:22.177: I/Choreographer(265): Skipped 120 frames! The application may be doing too much work on its main thread.
10-22 21:54:32.339: W/ActivityManager(167): Activity destroy timeout for ActivityRecord{411d90d0 com.example.registrazionegcm/.DemoActivity}
OriginalL'auteur alfo888_ibg | 2012-10-22
Vous devez vous connecter pour publier un commentaire.
C'est probablement en cours d'exécution sur un appareil qui ne prend pas en charge GCM, de sorte que votre appel à
GCMRegistrar.checkDevice( this );
est en train de lancer une exception. Vérifiez votre logcat pour être sûr.Si vous faites des tests sur un émulateur, assurez-vous d'avoir l'émulateur configuré pour l'utilisation des Api Google. Lorsque vous créez l'émulateur, le fait de créer de nouvelles AVD fenêtre a une "Cible" de la boîte. Sélectionnez quelque chose dans la case qui dit que "l'Api Google".
stackoverflow.com/questions/11339445/...
Ajouté à ma réponse.
Oui, le problème était celui-ci 🙁 je jette moyen de 1 semaine pour résoudre ce problème :'( je suis de remplissage tellement stupide :'( merci les gars!
OriginalL'auteur Ralgha
Plz Suivez les Étapes Suivantes
1 . Inclure "gcm.jar" dans libs dans votre Application
2. Android SDK Manager => Extras => Installer Google Cloud Messaging pour Android Bibliothèque (Obsolète)
3. Android SDK Manager => Android 4.3 (API 18) => Installer Api Google
n'ont le GCM installé" que voulez-vous dire ?
je veux dire que j'ai eu cette erreur Causée par: java.lang.UnsupportedOperationException: l'Appareil n'a pas de package com.google.android.gsf dans le nexus S un 4 alors, comment pourraient-ils ne pas avoir ces?
OriginalL'auteur Rashid Ali
Dans eclipse
1)Télécharger gcm.jar
2)buildpath-->configure build path-->bibliothèques-->external jar -->path_to_gcmjar
c'est le point le plus important
3)copie gcm.jar et coller dans le dossier lib du projet
OriginalL'auteur Saurabh Ahuja