13

Ho il problema che dice l'applicazione Android. "L'xxxx applicazione Purtroppo fermato" per lavorare con il notificaction spinta, quando si esegue il debugger che accade quando passa:Errore GCM - googleCloudMessaging.register

metodo 1

InstanceID InstanceId = InstanceID.getInstance (context); 

token = instanceID.getToken (key_id.toString() 

GoogleCloudMessaging.INSTANCE_ID_SCOPE); getToken error, 

metodo 2

Sia un lo stesso errore

nota che il token viene generato ma l'applicazione è chiusa, errore:

"The method 'java.io.File android.support.v4.content.ContextCompat.getNoBackupFilesDir (android.content.Context)' was expected to be of type virtual but was found to be Instead of direct type (declaration of 'java.lang .reflect.ArtMethod 'appears in /system/framework/core-libart.jar)" 

Sto usando Android Studio, per cdvCompileSdkVersion = android-22 cdvBuildToolsVersion = 22.0.1

Errore:

"FATAL EXCEPTION: main 
Process: PID: 11989 
java.lang.IncompatibleClassChangeError: The method 'java.io.File android.support.v4.content.ContextCompat.getNoBackupFilesDir(android.content.Context)' was expected to be of type virtual but instead was found to be of type direct (declaration of 'java.lang.reflect.ArtMethod' appears in /system/framework/core-libart.jar) 
    at com.google.android.gms.iid.zzd.zzde(Unknown Source) 
    at com.google.android.gms.iid.zzd.<init>(Unknown Source) 
    at com.google.android.gms.iid.zzd.<init>(Unknown Source) 
    at com.google.android.gms.iid.InstanceID.zza(Unknown Source) 
    at com.google.android.gms.iid.InstanceID.getInstance(Unknown Source) 
    at com.google.android.gms.iid.InstanceIDListenerService.zzn(Unknown Source) 
    at com.google.android.gms.iid.InstanceIDListenerService.onStartCommand(Unknown Source) 
    at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2924) 
    at android.app.ActivityThread.access$2100(ActivityThread.java:155) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1415) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:135) 
    at android.app.ActivityThread.main(ActivityThread.java:5343) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)" 

quello che potrebbe essere il problema?

saluti,

+0

Quali librerie di supporto stai usando? ..... prova ad aggiornare le tue librerie di supporto –

+0

GCM è stato appena dichiarato obsoleto - Firebase Cloud Messaging è il nuovo servizio. FCM gestisce la registrazione per te e ottenere il token è anche più facile. Si consiglia vivamente di implementare FCM. Ecco un link su come migrare da GCM: https://developers.google.com/cloud-messaging/android/android-migrate-fcm –

+0

non possiamo risolverlo con gcm se sì come? – Shikhar

risposta

0

Per quanto ho letto, java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn't exist errore, che avete incontrato dopo la migrazione di un App GCM Client per Android per Firebase cloud di messaggistica, sono state riscontrate anche da molti sviluppatori dopo aver aggiunto la dipendenza per Crash Informazioni al a livello di progetto build.gradle di file:

compile 'com.google.firebase:firebase-crash:9.0.0' 

Quindi, se vi capita di usare Firebase riporto di un crash, è necessario assicurarsi che la segnalazione incidente è multi-processo sicuro. In caso contrario, potrebbero verificarsi problemi di concorrenza come indicato in Report Crashes - Known Issues.

Una soluzione probabile che ho trovato è quello di impostare contesto Android e attivare Offline persistenza, in cui si attiva tramite l'oggetto FirebaseDatabase nel MainActivity:

FirebaseDatabase.getInstance().setPersistenceEnabled(true); 

soluzione campione in MainActivity.java:

@Override 
public void onCreate() { 
    super.onCreate(); 
    if (!FirebaseApp.getApps(this).isEmpty()) { 
    FirebaseDatabase.getInstance().setPersistenceEnabled(true); 
    } 
} 

Questo post SO - java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] ha aiutato con le mie ricerche. Spero che ti possa aiutare anche tu.

3

Il problema riscontrato è dovuto ad un'incompatibilità tra
play-services/firebase sdk v9.0.0 e com.android.support:appcompat-v7 >= 24
E 'possibile che non si è direttamente dipendente da appcompat-v7> = 24 ma alcune altre dipendenze sono configurati per utilizzare la più aggiornata appcompat disponibili .

Per risolvere questo problema abbiamo lanciato play-services/firebase sdk versione 9.0.1
Questa versione minore dovrebbe risolvere l'incompatibilità con appcompat-v7!

+0

Posso confermare che questa incompatibilità esiste anche per Google Play Services v8.4.0. Speculazione: appcompat-v7> = 24 e Google Play Services

+0

Ho ricevuto questo errore 'Trovato com.google.android.gms: play-services-gcm: 9.0.2, ma è necessaria la versione 9.0.0 per il plug-in per i servizi di google. Il mio plug-in del servizio di google' classpath 'com .google.gms: google-services: 3.0.0'' e ho 'apply plugin: 'com.google.gms.google-services'' alla fine del file. e ho dipendenza appcompat come 'compile 'com.android.support: appcompat-v7: 22.2.1'' –

0

Infine questo problema è risolto in v9.0.2. Aggiorna la libreria del servizio Google Play.

compile 'com.google.android.gms:play-services:9.0.2' 

Dopo l'aggiornamento, si può verificare un errore: rifinito con valore diverso da zero l'uscita 2 soluzione per questo è qui: Java finished with non-zero exit value 2 - Android Gradle

1

ho anche rivolto stesso errore.

SOLUZIONE

semplicemente incollare questo nel file Gradle

configurations.all { 
     resolutionStrategy { 
      force 'com.android.support:design:23.4.0' 
      force 'com.android.support:support-v4:23.4.0' 
      force 'com.android.support:appcompat-v7:23.4.0' 
     } 
    } 

Questo problema è che avete le dipendenze che includono le vecchie versioni della libreria di supporto. CHECK THIS LINK

Ecco il mio controllo del file Gradle questo

Gradle

apply plugin: 'com.android.application' 

android { 
    signingConfigs { 
     config { 
      keyAlias 'hwindi' 
      keyPassword '123456' 
      storeFile file('D:/Company Projects/Hwindi/Project 2/Play_KeyStore/HwindiKeyStore.jks') 
      storePassword '123456' 
     } 
    } 
    compileSdkVersion 23 
    buildToolsVersion "23.0.2" 
    defaultConfig { 
     applicationId "com.hwindiapp.passenger" 
     minSdkVersion 16 
     targetSdkVersion 23 
     versionCode 7 
     versionName "1.6" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    packagingOptions { 
     exclude 'lib/arm64-v8a/libcardioDecider.so' 
     exclude 'lib/arm64-v8a/libcardioRecognizer.so' 
     exclude 'lib/arm64-v8a/libcardioRecognizer_tegra2.so' 
     exclude 'lib/arm64-v8a/libopencv_core.so' 
     exclude 'lib/arm64-v8a/libopencv_imgproc.so' 
     exclude 'lib/armeabi/libcardioDecider.so' 
     exclude 'lib/armeabi-v7a/libcardioDecider.so' 
     exclude 'lib/armeabi-v7a/libcardioRecognizer.so' 
     exclude 'lib/armeabi-v7a/libcardioRecognizer_tegra2.so' 
     exclude 'lib/armeabi-v7a/libopencv_core.so' 
     exclude 'lib/armeabi-v7a/libopencv_imgproc.so' 
     exclude 'lib/mips/libcardioDecider.so' 
     exclude 'lib/x86/libcardioDecider.so' 
     exclude 'lib/x86/libcardioRecognizer.so' 
     exclude 'lib/x86/libcardioRecognizer_tegra2.so' 
     exclude 'lib/x86/libopencv_core.so' 
     exclude 'lib/x86/libopencv_imgproc.so' 
     exclude 'lib/x86_64/libcardioDecider.so' 
     exclude 'lib/x86_64/libcardioRecognizer.so' 
     exclude 'lib/x86_64/libcardioRecognizer_tegra2.so' 
     exclude 'lib/x86_64/libopencv_core.so' 
     exclude 'lib/x86_64/libopencv_imgproc.so' 
    } 
    configurations.all { 
     resolutionStrategy { 
      force 'com.android.support:design:23.4.0' 
      force 'com.android.support:support-v4:23.4.0' 
      force 'com.android.support:appcompat-v7:23.4.0' 
     } 
    } 
} 
repositories { 
    mavenCentral() 
    maven { url "https://jitpack.io" } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile 'com.android.support:appcompat-v7:23.4.0' 
    compile 'com.android.support:design:23.1.1' 
    compile 'com.android.support:cardview-v7:23.1.1' 
    compile 'com.android.support:recyclerview-v7:23.1.1+' 
    compile 'com.google.android.gms:play-services-gcm:9.0.0' 
    compile 'com.google.android.gms:play-services-location:9.0.0' 
    compile 'com.google.android.gms:play-services-maps:9.0.0' 
    compile 'com.google.android.gms:play-services-plus:9.0.0' 
    compile 'com.facebook.android:facebook-android-sdk:4+' 
    compile 'com.paypal.sdk:paypal-android-sdk:2.13.3' 
    compile 'com.wdullaer:materialdatetimepicker:2.2.0' 
    compile 'com.mukesh:permissions:1.0.3' 
} 
0

problema risolto utilizzando sotto il codice. Appena aggiornato

compileSdkVersion 24 
buildToolsVersion "24.0.1" 
. 
. 
. 
dependencies 
{ 
compile 'com.android.support:recyclerview-v7:24.1.1' 
compile "com.google.android.gms:play-services-gcm:9.4.0" 
} 

Questo ha risolto il mio errore GCM.