Java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions
Я получал эту странную ошибку на моей консоли разработчика Google. Поэтому я использовал Google Cloud Test Lab, чтобы посмотреть, что происходит на самом деле. оказывается, мое приложение не работает почти на всех устройствах
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)
Вот скриншот теста.
![введите описание изображения здесь]()
Теперь вот смешная часть, Я даже не использую Firebase в своем приложении вообще. Нет ссылки на слово "Firebase", когда я нахожу путь в своем приложении. Я использую Google облачные сервисы, логин и механизм приложений Google, хотя.
Здесь мой файл 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:[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')
}
Может ли кто-нибудь помочь мне здесь?
Ответы
Ответ 1
Спасибо, что разместили вопрос Sanket. Я - премьер-министр лаборатории испытаний Firebase (ранее Лаборатория облачных испытаний). Хотел сообщить вам, что это ошибка на нашем конце, которая теперь должна быть исправлена.
Кажется, что ваше приложение в настоящее время использует новейшие и самые лучшие сервисы Google Play. Мы обновили наши устройства, чтобы использовать их на прошлой неделе, тогда мы обнаружили ошибку, с которой мы вернулись к более старой версии. В настоящий момент мы повторно развернули новейшие сервисы Play на наших устройствах, чтобы повторять ваши тесты. Если нет, сообщите мне, и мы рассмотрим его и исправим.
Ответ 2
Я нашел решение, которое сработало для меня. Я импортировал всю библиотеку Google Play 9.0.1. Временным решением является импорт только тех API, которые действительно необходимы вашему приложению. Вы можете получить весь список API здесь.
Ответ 3
в моем случае: используйте FCM и карту Google
//for FCM
compile 'com.google.firebase:firebase-messaging:9.4.0'
//for Map
compile 'com.google.android.gms:play-services:9.4.0'
Я исправил:
Удалено
compile 'com.google.android.gms:play-services:9.4.0'
и используется
compile 'com.google.android.gms:play-services-maps:9.4.0'
compile 'com.google.android.gms:play-services-location:9.4.0'
Он работал нормально.
Ответ 4
Если это поможет другим, я решил это использовать, хотя это нигде не связано с Firebase, но на самом деле это решило мой сбой
-
Добавить compile 'com.android.support:multidex:1.0.1'
в app/build.gradle.
-
Добавить android:name="android.support.multidex.MultiDexApplication"
в тег приложения в AndroidManifest.xml.
-
Если вы используете собственный класс приложения, пропустите файл AndroidManifest.xml и создайте класс Application, расширяющий MultiDexApplication вместо приложения.
Ответ 5
Вам необходимо использовать com.google.firebase: firebase-ads: 9.0.2 AdMob
в зависимости от Android,
compile 'com.google.firebase:firebase-ads:9.0.2'
и удалите
play-services (com.google.android.gms: play-services:9.0.2)
Это работает для меня!
Ответ 6
Попробуйте выполнить фрагмент кода:
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);
}
}
Ответ 7
Просто снимите зависимость игры play-сервиса google с compile 'com.google.android.gms:play-services:8.3.0'
, и проблема будет решена.
Ответ 8
Я надеюсь, что это не слишком поздно. Firebase вызывал проблемы, поэтому я исключил это.
Я просто добавил это в модуль gradle:
configurations {
all*.exclude group: 'com.google.firebase', module: 'firebase-common'
}
Ответ 9
Оказывается, мое использование MultiDex
было неправильным и вызывает эту ошибку.
Это должно было действительно упоминаться в официальной документации где-то.
Как это сделать правильно:
В Gradle.build(уровень приложения)
dependencies {
compile 'com.android.support:multidex:1.0.1'
В манифесте,
добавить
<application
android:name=".Global"
...
В классе Application
public class Global extends MultiDexApplication {
...
}
Ответ 10
В Android 4.4 спаситель был похож на это (fooobar.com/questions/53403/...):
- У меня есть версия услуг Google Play 33
1) Настроить build.gradle и и зависимости
Включена поддержка multidex и добавлена библиотека 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) Измените манифест и добавьте этот андроид: name
<application
android:name="android.support.multidex.MultiDexApplication"
...
.....
activity
android:name="packagename.Application"
....
...
</activity>
3) Класс приложения
-Мой класс приложения:
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);
----
----
Ответ 11
Не уверен, что это помогает, но у меня была такая же проблема с Android sdk 19, и это сводило меня с ума. Я не использую Firebase (по крайней мере, не целенаправленно)
Я не уверен, почему, но ошибка прекратилась, когда я установил "minifyEnabled true" в config gradle.
Я вижу, что вы забыли свой комментарий в разделе выпусков.
Ответ 12
Если вы используете сервисы Google Play, убедитесь, что вы добавили конкретную услугу. Например
при использовании карт:
compile 'com.google.android.gms:play-services-maps:x.x.x
вместо
compile 'com.google.android.gms:play-services:9.6.1'
Это уменьшит размер кода, и компиляция не потребует использования функции "multidex".
Если случайно вы уже включили
{
multiDexEnabled true
}
в вашем коде попробуйте удалить его и ненужные ссылки на библиотеки