Android NoClassDefFoundError:com.google.firebase.FirebaseOptions
Posted
技术标签:
【中文标题】Android NoClassDefFoundError:com.google.firebase.FirebaseOptions【英文标题】:Android NoClassDefFoundError: com.google.firebase.FirebaseOptions 【发布时间】:2016-09-28 20:13:47 【问题描述】:当我运行我的代码时,Adroid studio 给出了这个错误
我的 gradle 文件如下所示,android Studio v2.2 gradle 是 'com.android.tools.build:gradle:2.2.0-alpha1'
apply plugin: 'com.android.application'
android
compileSdkVersion 23
buildToolsVersion "23.0.2"
packagingOptions
exclude 'META-INF/DEPENDENCIES'
defaultConfig
applicationId "com.asd.asd"
minSdkVersion 14
targetSdkVersion 23
versionCode 9
versionName "1.3.4"
multiDexEnabled true
buildTypes
release
debuggable false
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
dexOptions
javaMaxHeapSize "4g"
jumboMode true
preDexLibraries false
dependencies
compile project(':mPChartLib')
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.google.code.gson:gson:2.3.1'
compile files('libs/commons-httpclient-3.1.jar')
compile files('libs/signpost-commonshttp4-1.2.1.2.jar')
compile files('libs/signpost-core-1.2.1.2.jar')
compile files('libs/pushwoosh-4.0.4.jar')
compile files('libs/httpcore-4.4.4.jar')
compile files('libs/httpclient-4.5.2.jar')
compile 'com.google.android.gms:play-services:9.0.0'
05-30 20:41:50.785 14551-14551/com.asd.asd/AndroidRuntime: FATAL EXCEPTION: main Process: com.asd.asd, PID: 14551
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:1638)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1609)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
at android.app.ActivityThread.installProvider(ActivityThread.java:5008)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4582)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4522)
at android.app.ActivityThread.access$1500(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1381)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5292)
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:824)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
at dalvik.system.NativeStart.main(Native Method)
不使用任何 firebase 应用程序,但我收到此错误。所以我尝试了一些在互联网上找到的技术。但注意到变化。
你能帮帮我吗
【问题讨论】:
【参考方案1】:首先在您的 sdk 中更新您的 Google Repository
第二个启用multidex
like
defaultConfig
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
编译
compile 'com.android.support:multidex:1.0.1'
classpath 'com.google.gms:google-services:3.0.0'
【讨论】:
当我添加类路径 'com.google.gms:google-services:3.0.0' 。我收到一个错误 Gradle sync failed: Gradle DSL method not found: 'classpath()' @çağrıGündüz 在这里阅读 ***.com/a/26851467/4824159 和 ***.com/a/27735956/4824159 尝试编译'com.google.android.gms:play-services:9.0.+'
İt 工作但现在我在程序启动时收到此错误 java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions at com.google.firebase.FirebaseApp.zzbu(Unknown Source) at com。 google.firebase.provider.FirebaseInitProvider.onCreate(未知来源)
您使用了哪个 AS 版本,并在您的 as sdk 中更新您的所有 google 存储库【参考方案2】:
此错误在较新的版本中报告,主要围绕修订版 28,29 并在较新的 Play 服务版本中得到解决,因此如果您遇到此问题,请首先确保您的 Android 工作室中已更新版本的 Google Play 服务。
按照以下步骤操作:
-
转到 Android SDK 管理器
转至额外
并将其更新到版本 30 或更高版本。
那么如果您在应用程序中使用 MultiDex,那么请仅在强制使用时才使用它。
确保在集成 MultiDex 时遵循这些步骤。
在你应用级Build.Gradle
defaultConfig
applicationId "com.reversebits.tapanhp.saffer"
minSdkVersion 17
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
在dependencies
中应用MultiDex 依赖
dependencies
compile fileTree(dir: 'libs', include: ['*.jar'])
wearApp project(':wear')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.google.android.gms:play-services:9.4.0'
compile 'com.android.support:multidex:1.0.1'
然后在您的 AndroidMenifest.xml 文件中确保 Application 标签的名称为 MultiDexApplication。
<application
android:name="android.support.multidex.MultiDexApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
注意
如果您有自定义应用程序类并在清单文件中使用它,那么您可以在应用程序类中初始化 multidex,如下所示,
public class AppClass extends Application
private static Context context;
private static AppClass mInstance;
@Override
protected void attachBaseContext(Context base)
super.attachBaseContext(base);
MultiDex.install(this);
【讨论】:
【参考方案3】:在您的*** build.gradle 中,您必须添加:
buildscript
// ...
dependencies
// ...
classpath 'com.google.gms:google-services:3.0.0'
然后在你的模块中build.gradle
:
apply plugin: 'com.android.application'
android
// ...
dependencies
// ...
// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'
【讨论】:
【参考方案4】:1,打开您的 SDK 管理器,然后安装 Google Play Services (rev 30) 和 Google Repository (rev 26)。
2、将classpath 'com.google.gms:google-services:3.0.0'
添加到你的build.gradle项目中。
【讨论】:
【参考方案5】:你应该在你的 gradle.build 中包含 Multidex 库
compile 'com.android.support:multidex:1.0.1'
正如@Lollipop 所建议的,您需要下载 Google play Services 并在您的项目中添加类路径。因为 Firebase 需要这个库才能正常工作。
编辑
buildscript
dependencies
classpath 'com.google.gms:google-services:3.0.0'
【讨论】:
当我添加类路径 'com.google.gms:google-services:3.0.0' 。我收到一个错误 Gradle sync failed: Gradle DSL method not found: 'classpath()' 你应该在 gradle.build 文件中的 'buildscript dependencies classpath 'com.google.gms:google-services:3.0.0' ' 下添加类路径以上是关于Android NoClassDefFoundError:com.google.firebase.FirebaseOptions的主要内容,如果未能解决你的问题,请参考以下文章
selenium-网站demo学习- java.lang.IllegalAccessError ,java.lang.NoClassDefFoundError,还有没找到driver的
Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )
Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )