Ich habe diesen seltsamen Fehler in meiner Google-Entwicklerkonsole erhalten. Also habe ich Google Cloud Test Lab verwendet, um zu sehen, was wirklich passiert. meine App fällt auf fast allen Geräten aus
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)
Hier ist ein Screenshot des Tests .
Hier ist der lustige Teil, ich benutze Firebase überhaupt nicht in meiner App. Es gibt keinen Hinweis auf das Wort "Firebase", wenn ich in meiner gesamten Anwendung einen Pfad finde. Ich benutze jedoch Google Cloud-Dienste, Login und Google App Engine.
Hier ist meine build.gradle -Datei:
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:[email protected]') {
transitive = true
}
compile 'com.mikepenz:google-material-typeface:[email protected]' //Google Material Design Icons
compile 'com.mikepenz:fontawesome-typeface:[email protected]'
compile('com.vincentbrison.openlibraries.Android:dualcache:[email protected]') {
transitive = true;
}
compile project(':htmlDialog')
compile('com.Twitter.sdk.Android:Twitter:[email protected]') {
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')
}
Kann mir hier jemand helfen?
Vielen Dank, dass Sie die Frage Sanket gestellt haben. Ich bin der PM im Firebase Test Lab (früher Cloud Test Lab). Wollte Sie wissen lassen, dass dies ein Fehler an unserem Ende ist, der jetzt behoben werden sollte.
Es scheint, dass Ihre App derzeit die neuesten und besten Google Play-Dienste verwendet. Letzte Woche haben wir unsere Geräte aktualisiert, um sie verwenden zu können. Dann haben wir einen Fehler entdeckt, durch den wir auf eine ältere Version zurückgesetzt wurden. Im Moment haben wir die neuesten Play-Dienste auf unseren Geräten neu bereitgestellt, sodass ein erneutes Ausführen Ihrer Tests funktionieren sollte. Wenn nicht, lass es mich wissen und wir werden es prüfen und beheben.
Ich habe eine Lösung gefunden, die für mich funktioniert hat. Ich habe ganze Google Play Services 9.0.1-Bibliothek importiert. Die temporäre Problemumgehung besteht darin, nur die APIs zu importieren, die Ihre App tatsächlich benötigt. Die vollständige Liste der APIs finden Sie hier .
in meinem Fall: Verwenden Sie FCM und 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'
Ich habe behoben: Entfernt
compile 'com.google.Android.gms:play-services:9.4.0'
und gebraucht
compile 'com.google.Android.gms:play-services-maps:9.4.0'
compile 'com.google.Android.gms:play-services-location:9.4.0'
Es hat gut funktioniert.
Wenn dies anderen helfen kann, habe ich dies mit diesem Problem gelöst, obwohl dies nirgends mit Firebase verbunden ist, aber tatsächlich meinen Absturz gelöst hat
Fügen Sie compile 'com.Android.support:multidex:1.0.1'
zu app/build.gradle hinzu.
Fügen Sie dem Anwendungs-Tag in AndroidManifest.xml Android:name="Android.support.multidex.MultiDexApplication"
hinzu.
Wenn Sie eine benutzerdefinierte Application-Klasse verwenden, überspringen Sie AndroidManifest.xml und lassen Sie Ihre Application-Klasse MultiDexApplication statt Application erweitern.
Sie müssen den com.google.firebase: firebase-ads: 9.0.2 AdMob Für Android-Abhängigkeiten verwenden.
compile 'com.google.firebase:firebase-ads:9.0.2'
und entferne deine
play-services (com.google.Android.gms: play-services:9.0.2)
Für mich geht das!
Sie würden folgendes Codeausschnitt versuchen:
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);
}
}
Ich hoffe es ist nicht zu spät. Firebase hat Probleme verursacht, also habe ich es ausgeschlossen .. Ich habe es gerade in das Modul gradle eingefügt:
configurations {
all*.exclude group: 'com.google.firebase', module: 'firebase-common'
}
Runterstufen Sie die Google Play-Service-Abhängigkeit auf compile 'com.google.Android.gms:play-services:8.3.0'
und das Problem wird gelöst.
In Android 4.4 war die Lösung ähnlich ( https://stackoverflow.com/a/38707231/3377472 ):
- Ich habe eine Revision 33 der Google Play-Dienste
1) Konfigurieren Sie build.gradle und und Abhängigkeiten
Multidex-Unterstützung aktiviert und Bibliothek von Multidex hinzugefügt
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) Bearbeiten Sie das Manifest und fügen Sie diesen Android-Namen hinzu
<application
Android:name="Android.support.multidex.MultiDexApplication"
...
.....
activity
Android:name="packagename.Application"
....
...
</activity>
3) Anwendungsklasse
-Meine Anwendungsklasse ist:
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);
----
----
Es stellte sich heraus, dass meine Verwendung von MultiDex
falsch war und dass dies zu diesem Fehler führt. __ Dies sollte eigentlich in der offiziellen Dokumentation erwähnt worden sein.
In Gradle.build (App-Ebene)
dependencies {
compile 'com.Android.support:multidex:1.0.1'
Im Manifest Hinzufügen
<application
Android:name=".Global"
...
In der Application-Klasse
public class Global extends MultiDexApplication {
...
}
Wenn Sie Google Play-Dienste verwenden, stellen Sie sicher, dass Sie den spezifischen Dienst hinzufügen. Zum Beispiel Bei Verwendung von Karten:
compile 'com.google.Android.gms:play-services-maps:x.x.x
anstatt
compile 'com.google.Android.gms:play-services:9.6.1'
Dadurch wird die Größe des Codes reduziert, und für die Kompilierung ist die Verwendung der "Multidex" -Funktion nicht erforderlich
{
multiDexEnabled true
}
in Ihrem Code versuchen Sie es zu entfernen und unnötige Bibliotheksverweise
Nicht sicher, ob dies hilft, aber ich hatte das gleiche Problem mit Android SDK 19 und es hat mich verrückt gemacht. Ich benutze Firebase nicht (zumindest nicht absichtlich). Ich bin nicht sicher warum, aber der Fehler wurde beendet, wenn ich in der gradle config "minifyEnabled true" setze.
Ich sehe, dass Sie Ihre Kommentare in Ihrem Releases - Bereich auskommentiert haben.