以下是我的build.gradle
个文件。
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.1'
classpath 'com.google.gms:google-services:2.1.2'
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
这是另一个
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "24.0.2"
defaultConfig {
applicationId 'com.example.app'
minSdkVersion 15
targetSdkVersion 24
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
testCompile 'junit:junit:4.12'
compile 'com.squareup.okhttp:okhttp:2.5.0'
compile 'com.android.support:recyclerview-v7:24.2.1'
compile 'com.android.support:cardview-v7:24.2.1'
compile 'com.squareup.picasso:picasso:2.5.2'
//compile 'com.google.firebase:firebase-core:9.8.0'
compile 'com.google.firebase:firebase-ads:9.8.0'
compile 'com.google.firebase:firebase-crash:9.8.0'
compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha9'
compile project(path: ':standOut')
}
apply plugin: 'com.google.gms.google-services'
Gradle Sync正常运行,但是当我尝试运行应用时出现以下错误
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/android/gms/measurement/AppMeasurementService.class
如果我将行classpath 'com.google.gms:google-services:2.1.2'
更改为classpath 'com.google.gms:google-services:3.0.0'
并同步gradle文件,我可以运行该应用,当我在真实设备上运行时,我会收到此错误。
E/FirebaseCrash: Failed to initialize crash reporting: com.google.android.gms.internal.zztl$zza: No acceptable module found. Local version is 0 and remote version is 0.
稍后我会故意破坏我的应用程序,但我没有得到任何崩溃报告。但是,当我在三星Galaxy S3 Mini上运行相同的应用程序并崩溃我的应用程序时,我会收到崩溃报告。
首播设备播放服务版本为9.4,三星则为9.8。 为什么当我使用版本3.0.0的谷歌服务插件时,它适用于三星,并且无法在其他设备上运行(我试图在其他两个设备上运行该应用程序而且它们都无法正常运行)?
使用插件版本2.1.2时,为什么会出现此duplicate entry
错误?
此外,我检查了jcenter上的插件版本,版本2.1.2的日期为2016年6月3日,而3.0.0是2016年5月18日(https://bintray.com/android/android-tools/com.google.gms.google-services)。那么,哪个版本是最新版本,我应该使用哪个版本?
你认为我需要这一行compile 'com.google.firebase:firebase-core:9.8.0'
。我尝试使用和不使用它,它似乎没有任何区别。
答案 0 :(得分:1)
事实证明,设备上的google play services
版本不能低于所用库的版本。谷歌服务插件下载版本9.8。在三星我有版本9.8和崩溃报告工作,但在其他设备上我有版本9.4,它没有工作。恕我直言,这是错误的,因为这意味着我不会收到google play services
版本低于9.8的用户的崩溃报告。
我试图找到一种方法使firebase崩溃报告与插件版本2.1.2一起工作,因为我不能这样做,我使用的是3.0.0版本。似乎版本3.0.0是要走的路,我只是想知道为什么最新版本是2.1.2。
当我切换到版本3.0.0并在设备上将播放服务更新到版本9.8时,一切正常。