我的应用程序有minSdkVersion
API 14,我在运行Android M的设备上测试了应用程序,一切正常,然后我尝试在运行API 15的设备上运行该应用程序(Android 4.0.3)我在应用程序启动时遇到以下崩溃:
FATAL EXCEPTION: main 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:986)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
at android.app.ActivityThread.installProvider(ActivityThread.java:4249)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4004)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3958)
at android.app.ActivityThread.access$1300(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1197)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4507)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)
我在我的应用中没有使用Firebase
这是我的傻瓜:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "it.*.*"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile project(':libraries:Sliding Menu')
compile 'com.android.volley:volley:1.0.0'
compile files('libs/YouTubeAndroidPlayerApi.jar')
compile 'com.android.support:cardview-v7:23.+'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.android.support:design:23.4.0'
compile 'com.google.android.gms:play-services-analytics:9.0.0'
compile 'com.google.android.gms:play-services:9.0.0'
compile 'com.android.support:multidex:1.0.1'
}
apply plugin: 'com.google.gms.google-services'
有谁知道可能是什么问题?为什么它只在具有API 15的设备上崩溃?
答案 0 :(得分:1)
根据最新的Google文档,Firebase是Google Cloud Messaging的新版本。从您的gradle文件中,您似乎正在添加所有播放服务,因此还添加了firebase。替换
compile 'com.google.android.gms:play-services:9.0.0'
只有你需要的库。有关选择性服务的更多信息,请参阅此link
答案 1 :(得分:0)
如果您还没有,请从Android SDK
更新您的“Google Play服务”到第30版如果您尚未将此属性添加到清单中的应用程序代码:android:name="android.support.multidex.MultiDexApplication"
正如您所说“我在我的应用中没有使用Firebase” 删除Firebase相关类的所有内存,然后运行 在Android工作室从终端清理gradlew。
答案 2 :(得分:0)
我认为您不需要google-play-services来使用firebase
我的成绩包括:
<强>的build.gradle(项目):强>
...
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0-alpha1'
classpath 'com.google.gms:google-services:3.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
...
<强>的build.gradle:(模块)强>
...
dependencies {
...
compile 'com.google.firebase:firebase-messaging:9.0.2'
}
...
apply plugin: 'com.google.gms.google-services'
检查这种方式并告诉我它是否有效。
注意:如果您想使用Firebase Analytics,则需要
compile 'com.google.firebase:firebase-analytics:9.0.0'
在build.gradle(Module)中。