Je recevais cette erreur étrange sur ma console de développeur google. J'ai donc utilisé Google Cloud Test Lab pour voir ce qui se passait réellement. s'avère que mon application échoue sur presque tous les appareils
FATAL EXCEPTION: main
Process: com.blackcurrantapps.iamin, PID: 16706
Java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions
at com.google.firebase.FirebaseApp.zzbu(Unknown Source)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1591)
at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1562)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
at Android.app.ActivityThread.installProvider(ActivityThread.Java:4871)
at Android.app.ActivityThread.installContentProviders(ActivityThread.Java:4466)
at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:4406)
at Android.app.ActivityThread.access$1500(ActivityThread.Java:139)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1270)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:136)
at Android.app.ActivityThread.main(ActivityThread.Java:5102)
at Java.lang.reflect.Method.invokeNative(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:515)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:785)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:601)
at dalvik.system.NativeStart.main(Native Method)
Voici une capture d'écran du test .
Maintenant, voici la partie amusante, je n’utilise même pas Firebase dans mon application. Il n'y a aucune référence au mot "Firebase" quand je fais une recherche dans le chemin d'accès de toute mon application J'utilise cependant les services Google Cloud, la connexion et le moteur d'applications Google.
Voici mon fichier build.gradle:
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.Android.application'
apply plugin: 'io.fabric'
apply plugin: 'com.google.gms.google-services'
Android {
compileSdkVersion 23
buildToolsVersion '23.0.2'
defaultConfig {
applicationId "com.blackcurrantapps.iamin"
minSdkVersion 16
targetSdkVersion 23
versionCode 11
versionName "Fixed Check in Bug"
multiDexEnabled = true
}
buildTypes {
release {
shrinkResources true
// minifyEnabled true
// proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
dexOptions {
javaMaxHeapSize "4g"
}
}
repositories {
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "https://oss.sonatype.org/content/groups/public/" }
maven { url "https://jitpack.io" }
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile('com.mikepenz:materialdrawer:4.5.8@aar') {
transitive = true
}
compile 'com.mikepenz:google-material-typeface:1.2.0.1@aar' //Google Material Design Icons
compile 'com.mikepenz:fontawesome-typeface:4.4.0.1@aar'
compile('com.vincentbrison.openlibraries.Android:dualcache:2.2.2@jar') {
transitive = true;
}
compile project(':htmlDialog')
compile('com.Twitter.sdk.Android:Twitter:1.8.0@aar') {
transitive = true;
}
compile 'com.Android.support:palette-v7:23.4.0'
compile 'com.Android.support:multidex:1.0.1'
compile 'com.Android.support:appcompat-v7:23.4.0'
compile 'com.Android.support:design:23.4.0'
compile 'com.google.Android.gms:play-services-maps:9.0.0'
compile 'com.google.Android.gms:play-services-gcm:9.0.0'
compile 'com.google.Android.gms:play-services-identity:9.0.0'
compile 'com.google.Android.gms:play-services-base:9.0.0'
compile 'com.google.Android.gms:play-services-plus:9.0.0'
compile 'com.google.Android.gms:play-services-analytics:9.0.0'
compile 'com.google.Android.gms:play-services-location:9.0.0'
compile 'com.Android.support:cardview-v7:23.4.0'
compile 'com.rengwuxian.materialedittext:library:2.1.3'
compile 'com.twotoasters.jazzylistview:library:1.2.1'
compile 'com.twotoasters.jazzylistview:library-recyclerview:1.2.1'
compile 'com.pnikosis:materialish-progress:1.7'
compile 'com.getbase:floatingactionbutton:1.10.1'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.squareup.okhttp:okhttp:2.6.0'
compile 'me.dm7.barcodescanner:zbar:1.8.3'
compile 'net.glxn.qrgen:Android:2.0'
compile 'com.edmodo:cropper:1.0.1'
compile 'com.github.PhilJay:MPAndroidChart:v2.1.6'
compile 'de.greenrobot:eventbus:2.4.0'
compile 'com.Android.support:support-v4:23.4.0'
compile 'com.pavelsikun:material-seekbar-preference:0.12.1+'
compile project(path: ':backend', configuration: 'Android-endpoints')
}
Est-ce que quelqu'un pourrait m'aider ?
Merci d'avoir posté la question Sanket. Je suis le PM de Firebase Test Lab (anciennement Cloud Test Lab). Je voulais vous faire savoir qu'il s'agit d'un bogue de notre côté qui devrait maintenant être corrigé.
Il semble que votre application utilise actuellement les derniers et meilleurs services Google Play. Nous avons mis à jour nos appareils pour les utiliser la semaine dernière, puis nous avons découvert un bogue qui nous faisait revenir à une version plus ancienne. À l'heure actuelle, nous avons redéployé les derniers services de lecture sur nos appareils. Vous devez donc réexécuter vos tests. Si non, s'il vous plaît faites le moi savoir et nous allons examiner et résoudre le problème.
J'ai trouvé une solution qui a fonctionné pour moi. J'importais toute la bibliothèque de Google Play Services 9.0.1. La solution temporaire consiste à importer uniquement les API dont votre application a réellement besoin. Vous pouvez obtenir la liste complète des API ici .
avec mon cas: utiliser FCM et Google map
//for FCM
compile 'com.google.firebase:firebase-messaging:9.4.0'
//for Map
compile 'com.google.Android.gms:play-services:9.4.0'
J'ai corrigé: Supprimé
compile 'com.google.Android.gms:play-services:9.4.0'
et utilisé
compile 'com.google.Android.gms:play-services-maps:9.4.0'
compile 'com.google.Android.gms:play-services-location:9.4.0'
Cela a bien fonctionné.
Si cela peut aider les autres, je résous ce problème en utilisant ceci, bien que cela ne soit lié nulle part à Firebase mais en réalité, il résout mon crash.
Ajoutez compile 'com.Android.support:multidex:1.0.1'
à app/build.gradle.
Ajoutez Android:name="Android.support.multidex.MultiDexApplication"
à la balise d'application dans AndroidManifest.xml.
Si vous utilisez une classe d'application personnalisée, ignorez le fichier AndroidManifest.xml et faites en sorte que votre classe d'application étende MultiDexApplication au lieu de l'application.
Vous devez utiliser le fichier com.google.firebase: firebase-ads: 9.0.2 AdMob Sur les dépendances Android,
compile 'com.google.firebase:firebase-ads:9.0.2'
et retirez votre
play-services (com.google.Android.gms: play-services:9.0.2)
Ça marche pour moi!
Vous essayez de suivre l'extrait de code:
defaultConfig {
multiDexEnabled true
}
dependencies {
compile 'com.Android.support:multidex:1.0.0'
}
public class Controller extends Application {
@Override
protected void attachBaseContext(Context newBase)
{
super.attachBaseContext(newBase);
MultiDex.install(this);
}
}
J'espère que ce n'est pas trop tard. Firebase posait problème, donc je l'ai exclu ..__ Je viens d'ajouter ceci dans le module gradle
configurations {
all*.exclude group: 'com.google.firebase', module: 'firebase-common'
}
Il suffit de déclasser la dépendance de Google Play-Service à compile 'com.google.Android.gms:play-services:8.3.0'
et le problème sera résolu.
Dans Android 4.4, la solution était semblable à celle-ci ( https://stackoverflow.com/a/38707231/3377472 ):
-J'ai la révision des services Google Play 33
1) Configurez build.gradle et et les dépendances
Activation du support multidex et ajout de la bibliothèque de multidex
Android {
compileSdkVersion 23
buildToolsVersion '23.0.3'
defaultConfig {
applicationId "packagename"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
//------- Enabling multidex support----------.
multiDexEnabled true
}
dexOptions {
javaMaxHeapSize "3g"//use 3Gb of ram to launch Android
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
dependencies {
compile 'com.Android.support:multidex:1.0.1' // 1.0.0
// if you are using google maps
compile 'com.google.Android.gms:play-services-maps:9.2.0'
compile 'com.google.Android.gms:play-services-location:9.2.0'
}
2) Modifier le manifeste et ajouter cet Android: nom
<application
Android:name="Android.support.multidex.MultiDexApplication"
...
.....
activity
Android:name="packagename.Application"
....
...
</activity>
3) classe d'application
-Ma classe d'application est:
import Android.support.multidex.MultiDex;
public class Application extends AppCompatActivity {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//this is the solution
MultiDex.install(this);
setContentView(R.layout.layout_example);
----
----
Il s’est avéré que mon utilisation de MultiDex
était erronée et que cela entraînait cette erreur ..__ Cela aurait dû être mentionné quelque part dans la documentation officielle.
Dans Gradle.build (niveau de l'application)
dependencies {
compile 'com.Android.support:multidex:1.0.1'
Dans le manifeste, ajouter
<application
Android:name=".Global"
...
Dans la classe d'application,
public class Global extends MultiDexApplication {
...
}
Si vous utilisez les services de Google Play, assurez-vous d’ajouter ce service. Par exemple, lorsque vous utilisez des cartes:
compile 'com.google.Android.gms:play-services-maps:x.x.x
au lieu de
compile 'com.google.Android.gms:play-services:9.6.1'
Cela réduira la taille du code et la compilation ne nécessitera pas l'utilisation de la fonctionnalité "multidex" .
{
multiDexEnabled true
}
dans votre code essayez de le supprimer et les références de bibliothèque inutiles
Je ne suis pas sûr que cela aide, mais j'avais le même problème avec Android sdk 19 et cela me rendait fou. Je n'utilise pas Firebase (du moins pas à dessein) Je ne suis pas sûr de savoir pourquoi, mais l'erreur a cessé lorsque j'ai défini "minifyEnabled true" dans la configuration.
Je vois que vous avez commenté le vôtre dans votre section releases.