abortonerror_java-更新Gradle依赖项后生成错误.嫌疑犯#1是...

我有一个构建良好的应用程序,但是当我尝试更新某些Gradle依赖项时就开始失败,而主要的怀疑对象是firebase.

这是我得到的错误:

Caused by:

com.android.builder.multidex.D8MainDexList$MainDexListException:

com.android.tools.r8.errors.CompilationError: Program type already

present: com.google.android.gms.internal.measurement.zzdz

这是我的项目的git diff,显示了Gradle文件中的差异:

diff --git a/android/build.gradle b/android/build.gradle

index 9f63f745..08fda2eb 100644

--- a/android/build.gradle

+++ b/android/build.gradle

@@ -81,8 +81,8 @@ dependencies {

implementation "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"

implementation "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"

implementation "com.android.billingclient:billing:$playBillingLibVersion"

- implementation "com.google.firebase:firebase-core:16.0.3"

- implementation "com.google.firebase:firebase-ads:15.0.1"

+ implementation "com.google.firebase:firebase-core:16.0.5"

+ implementation "com.google.firebase:firebase-ads:17.0.0"

implementation 'com.crashlytics.sdk.android:crashlytics:2.9.5'

implementation fileTree(include: ['*.jar'], dir: 'libs')

diff --git a/android_common/build.gradle b/android_common/build.gradle

index f8224509..3a5d45e1 100644

--- a/android_common/build.gradle

+++ b/android_common/build.gradle

@@ -19,7 +19,7 @@ android {

androidTest.setRoot('tests')

}

defaultConfig {

- minSdkVersion 15

+ minSdkVersion 16

targetSdkVersion 28

versionCode 1

versionName "1.0"

@@ -65,8 +65,8 @@ dependencies {

natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86"

natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86_64"

implementation "com.android.billingclient:billing:$playBillingLibVersion"

- implementation "com.google.firebase:firebase-core:16.0.3"

- implementation "com.google.firebase:firebase-ads:15.0.1"

+ implementation "com.google.firebase:firebase-core:16.0.5"

+ implementation "com.google.firebase:firebase-ads:17.0.0"

implementation fileTree(include: ['*.jar'], dir: 'libs')

testImplementation 'junit:junit:4.12'

diff --git a/android_instant_feature/build.gradle b/android_instant_feature/build.gradle

index 30431c11..17c4ef27 100644

--- a/android_instant_feature/build.gradle

+++ b/android_instant_feature/build.gradle

@@ -18,7 +18,7 @@ android {

defaultConfig {

versionCode 4031

versionName "4.1.2.1i"

- minSdkVersion 15

+ minSdkVersion 16

targetSdkVersion 28

multiDexEnabled true

}

@@ -77,8 +77,8 @@ dependencies {

api 'com.android.support:multidex:1.0.3'

implementation "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"

implementation "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"

- implementation "com.google.firebase:firebase-core:16.0.3"

- implementation 'com.google.android.gms:play-services-instantapps:16.0.0'

+ implementation "com.google.firebase:firebase-core:16.0.5"

+ implementation 'com.google.android.gms:play-services-instantapps:16.0.1'

implementation fileTree(dir: 'libs', include: ['*.jar'])

}

diff --git a/core/build.gradle b/core/build.gradle

index dd2640cf..5694a1da 100644

--- a/core/build.gradle

+++ b/core/build.gradle

@@ -15,7 +15,7 @@ dependencies {

compile group: 'commons-io', name: 'commons-io', version: '2.6'

// https://mvnrepository.com/artifact/commons-codec/commons-codec

compile group: 'commons-codec', name: 'commons-codec', version: '1.11'

- compile 'com.google.code.gson:gson:2.8.2'

+ compile 'com.google.code.gson:gson:2.8.5'

compile group: 'org.apache.commons', name: 'commons-text', version: '1.2'

compile group: 'org.apache.commons', name: 'commons-collections4', version: '4.1'

compile group: 'org.jetbrains', name: 'annotations', version: '16.0.1'

@@ -23,7 +23,7 @@ dependencies {

implementation "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"

testCompile 'junit:junit:4.12'

- testCompile 'org.mockito:mockito-core:2.7.22'

+ testCompile 'org.mockito:mockito-core:2.8.9'

testCompile group: 'org.powermock', name: 'powermock-api-mockito2', version: '1.7.3'

testCompile group: 'org.powermock', name: 'powermock-module-junit4', version: '1.7.3'

}

请注意,其中的某些更改(如minSDKVersion)可以作为错误源丢弃.似乎最有可能与firebase有关.为什么?好吧,在Stackoverflow中还存在其他问题,但是所有这些中提出的解决方案都是将firebase依赖关系更新到最新版本,但是将firebase依赖关系更新到最新版本似乎是导致问题的原因.在我的项目中!使用旧版本,它可以正常运行.

这些是涉及的Gradle脚本的内容(我已经用’com.myapp.id’替换了实际的applicationId)

:核心

apply plugin: "java"

targetCompatibility = 1.8

sourceCompatibility = 1.8

[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'

sourceSets.main.java.srcDirs = ["src/main"]

sourceSets.test.java.srcDirs = ["src/test"]

dependencies {

compile 'commons-io:commons-io:2.6'

compile 'commons-codec:commons-codec:1.11'

compile 'com.google.code.gson:gson:2.8.5'

compile 'org.apache.commons:commons-text:1.2'

compile 'org.apache.commons:commons-collections4:4.1'

compile 'org.jetbrains:annotations:16.0.1'

compile "com.badlogicgames.gdx:gdx:1.9.9-SNAPSHOT"

compile "com.badlogicgames.gdx:gdx-freetype:1.9.9-SNAPSHOT"

testCompile 'junit:junit:4.12'

testCompile 'org.mockito:mockito-core:2.8.9'

testCompile 'org.powermock:powermock-api-mockito2:1.7.3'

testCompile 'org.powermock:powermock-module-junit4:1.7.3'

}

repositories {

mavenCentral()

}

jar {

duplicatesStrategy = DuplicatesStrategy.EXCLUDE

}

:android_common

apply plugin: "com.android.feature"

configurations { natives }

android {

baseFeature true

compileSdkVersion 28

sourceSets {

main {

manifest.srcFile 'AndroidManifest.xml'

java.srcDirs = ['src']

aidl.srcDirs = ['src']

renderscript.srcDirs = ['src']

res.srcDirs = ['res']

assets.srcDirs = ['assets']

jniLibs.srcDirs = ['libs']

}

androidTest.setRoot('tests')

}

defaultConfig {

minSdkVersion 16

targetSdkVersion 28

versionCode 1

versionName "1.0"

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

sourceSets {

all {

manifest.srcFile "AndroidManifest.xml"

}

}

multiDexEnabled true

}

buildTypes {

release {

setMinifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

buildToolsVersion '28.0.2'

lintOptions {

abortOnError false

}

dexOptions {

jumboMode true

}

}

dependencies {

application project(':android')

feature project(':android_instant_feature')

api project(':core')

api 'com.android.support:multidex:1.0.3'

implementation "com.badlogicgames.gdx:gdx-backend-android:1.9.9-SNAPSHOT"

natives "com.badlogicgames.gdx:gdx-platform:1.9.9-SNAPSHOT:natives-armeabi"

natives "com.badlogicgames.gdx:gdx-platform:1.9.9-SNAPSHOT:natives-armeabi-v7a"

natives "com.badlogicgames.gdx:gdx-platform:1.9.9-SNAPSHOT:natives-arm64-v8a"

natives "com.badlogicgames.gdx:gdx-platform:1.9.9-SNAPSHOT:natives-x86"

natives "com.badlogicgames.gdx:gdx-platform:1.9.9-SNAPSHOT:natives-x86_64"

implementation "com.badlogicgames.gdx:gdx-freetype:1.9.9-SNAPSHOT"

natives "com.badlogicgames.gdx:gdx-freetype-platform:1.9.9-SNAPSHOT:natives-armeabi"

natives "com.badlogicgames.gdx:gdx-freetype-platform:1.9.9-SNAPSHOT:natives-armeabi-v7a"

natives "com.badlogicgames.gdx:gdx-freetype-platform:1.9.9-SNAPSHOT:natives-arm64-v8a"

natives "com.badlogicgames.gdx:gdx-freetype-platform:1.9.9-SNAPSHOT:natives-x86"

natives "com.badlogicgames.gdx:gdx-freetype-platform:1.9.9-SNAPSHOT:natives-x86_64"

implementation "com.android.billingclient:billing:dp-1"

implementation "com.google.firebase:firebase-core:16.0.5"

implementation "com.google.firebase:firebase-ads:17.0.0"

implementation fileTree(include: ['*.jar'], dir: 'libs')

testImplementation 'junit:junit:4.12'

androidTestImplementation 'com.android.support.test:runner:1.0.2'

androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

implementation 'com.google.guava:guava:24.0-android'

}

task copyAndroidNatives() {

file("libs/armeabi/").mkdirs();

file("libs/armeabi-v7a/").mkdirs();

file("libs/arm64-v8a/").mkdirs();

file("libs/x86_64/").mkdirs();

file("libs/x86/").mkdirs();

configurations.natives.files.each { jar ->

def outputDir = null

if (jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")

if (jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")

if (jar.name.endsWith("natives-armeabi.jar")) outputDir = file("libs/armeabi")

if (jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")

if (jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86")

if (outputDir != null) {

copy {

from zipTree(jar)

into outputDir

include "*.so"

}

}

}

}

:机器人

apply plugin: "com.android.application"

apply plugin: 'io.fabric' // Needed by crashlytics. DO NOT REMOVE.

android {

buildToolsVersion "28.0.2"

compileSdkVersion 28

sourceSets {

main {

manifest.srcFile 'AndroidManifest.xml'

java.srcDirs = ['src']

aidl.srcDirs = ['src']

renderscript.srcDirs = ['src']

res.srcDirs = ["${project(':android_common').projectDir}/res"]

assets.srcDirs = ['assets']

jniLibs.srcDirs = ['libs']

}

androidTest.setRoot('tests')

}

defaultConfig {

applicationId "com.myapp.id"

versionCode 4032

versionName "4.1.2.1"

minSdkVersion 16

targetSdkVersion 28

multiDexEnabled true

}

dexOptions {

jumboMode true

}

// Proguard configuration

buildTypes {

release {

//minifyEnabled true will turn proguard ON

minifyEnabled true

//proguardFiles let you add your own proguard rules ('proguard-project.txt') in this case, as its already created by gdx-setup

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'

}

}

compileOptions {

sourceCompatibility JavaVersion.VERSION_1_8

targetCompatibility JavaVersion.VERSION_1_8

}

productFlavors {

}

lintOptions {

abortOnError false

}

}

task importPuzzles(type: Exec) {

// TODO

}

task run(type: Exec) {

def path

def localProperties = project.file("../local.properties")

if (localProperties.exists()) {

Properties properties = new Properties()

localProperties.withInputStream { instr ->

properties.load(instr)

}

def sdkDir = properties.getProperty('sdk.dir')

if (sdkDir) {

path = sdkDir

} else {

path = "$System.env.ANDROID_HOME"

}

} else {

path = "$System.env.ANDROID_HOME"

}

def adb = path + "/platform-tools/adb"

commandLine "$adb", 'shell', 'am', 'start', '-n', 'com.myapp.id/com.myapp.id.AndroidLauncher'

}

dependencies {

implementation project(":android_common")

api 'com.android.support:multidex:1.0.3'

implementation "com.badlogicgames.gdx:gdx-backend-android:1.9.9-SNAPSHOT"

implementation "com.badlogicgames.gdx:gdx-freetype:1.9.9-SNAPSHOT"

implementation "com.android.billingclient:billing:dp-1"

implementation "com.google.firebase:firebase-core:16.0.5"

implementation "com.google.firebase:firebase-ads:17.0.0"

implementation 'com.crashlytics.sdk.android:crashlytics:2.9.5'

implementation fileTree(include: ['*.jar'], dir: 'libs')

}

// ADD THIS AT THE BOTTOM

apply plugin: 'com.google.gms.google-services'

:android_instant_feature

apply plugin: "com.android.feature"

android {

// baseFeature true

buildToolsVersion "28.0.2"

compileSdkVersion 28

sourceSets {

main {

manifest.srcFile 'AndroidManifest.xml'

java.srcDirs = ['src']

aidl.srcDirs = ['src']

renderscript.srcDirs = ['src']

res.srcDirs = ["${project(':android_common').projectDir}/res"]

assets.srcDirs = ['assets']

jniLibs.srcDirs = ['libs']

}

}

defaultConfig {

versionCode 4031

versionName "4.1.2.1i"

minSdkVersion 16

targetSdkVersion 28

multiDexEnabled true

}

dexOptions {

jumboMode true

}

// Proguard configuration

buildTypes {

release {

//minifyEnabled true will turn proguard ON

// minifyEnabled true

//proguardFiles let you add your own proguard rules ('proguard-project.txt') in this case, as its already created by gdx-setup

// proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'

}

debug {}

}

compileOptions {

sourceCompatibility JavaVersion.VERSION_1_8

targetCompatibility JavaVersion.VERSION_1_8

}

productFlavors {

}

lintOptions {

abortOnError false

}

}

task run(type: Exec) {

def path

def localProperties = project.file("../local.properties")

if (localProperties.exists()) {

Properties properties = new Properties()

localProperties.withInputStream { instr ->

properties.load(instr)

}

def sdkDir = properties.getProperty('sdk.dir')

if (sdkDir) {

path = sdkDir

} else {

path = "$System.env.ANDROID_HOME"

}

} else {

path = "$System.env.ANDROID_HOME"

}

def adb = path + "/platform-tools/adb"

commandLine "$adb", 'shell', 'am', 'start', '-n', 'com.myapp.id/com.myapp.id.AndroidLauncher'

}

dependencies {

implementation project(":android_common")

api 'com.android.support:multidex:1.0.3'

implementation "com.badlogicgames.gdx:gdx-backend-android:1.9.9-SNAPSHOT"

implementation "com.badlogicgames.gdx:gdx-freetype:1.9.9-SNAPSHOT"

implementation "com.google.firebase:firebase-core:16.0.5"

implementation 'com.google.android.gms:play-services-instantapps:16.0.1'

implementation fileTree(dir: 'libs', include: ['*.jar'])

}

// ADD THIS AT THE BOTTOM

apply plugin: 'com.google.gms.google-services'

最后,这是我项目的结构.与android相关的最相关的部分是顶部.下面我只展示它与核心模块的关系.

这是一个libGDX游戏,我正在使用IntelliJ Idea,尽管这无关紧要,因为我在命令行中使用./gradlew构建时遇到这些错误.

编辑:我按照TWL的建议将firebase-core从16.0.5降级到16.0.4,并且可以正常工作,因此,我认为这是可以接受的解决方法,至少在firebase家伙发布了firebase-core 16.0.6或与之实际兼容的情况下firebase-ads 17.0.0.问题似乎有效地在于,firebase-ads 17.0.0依赖于导致错误的较旧版本的库.

查看以下依赖项输出:

这是我用firebase-core 16.0.4得到的:

$./gradlew android_common:dependencies | grep measurement-base

0% EXECUTING [0s]

> :android_common:dependencies

| | | +--- com.google.android.gms:play-services-measurement-base:16.0.3

| | | | +--- com.google.android.gms:play-services-measurement-base:16.0.3

| | +--- com.google.android.gms:play-services-measurement-base:16.0.3

| +--- com.google.android.gms:play-services-measurement-base:16.0.3

| | | \--- com.google.android.gms:play-services-measurement-base:16.0.3

| | | +--- com.google.android.gms:play-services-measurement-base:16.0.3

| | | | +--- com.google.android.gms:play-services-measurement-base:16.0.3

| | +--- com.google.android.gms:play-services-measurement-base:16.0.3

| +--- com.google.android.gms:play-services-measurement-base:16.0.3

| | | \--- com.google.android.gms:play-services-measurement-base:16.0.3

| | | +--- com.google.android.gms:play-services-measurement-base:16.0.3

| | | | +--- com.google.android.gms:play-services-measurement-base:16.0.3

| | +--- com.google.android.gms:play-services-measurement-base:16.0.3

| +--- com.google.android.gms:play-services-measurement-base:16.0.3

…(依此类推,所有16.0.3都直接输入)

而对于firebase-core 16.0.5:

$./gradlew android_common:dependencies | grep measurement-base

0% EXECUTING [1s]

> :android_common:dependencies > Resolve dependencies of :android_common:releaseUnitTestRuntimeClasspath

| | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4

| | | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | | \--- com.google.android.gms:play-services-measurement-base:16.0.3 -> 16.0.4 (*)

| | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4

| | | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | | \--- com.google.android.gms:play-services-measurement-base:16.0.3 -> 16.0.4 (*)

| | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4

| | | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | | \--- com.google.android.gms:play-services-measurement-base:16.0.3 -> 16.0.4 (*)

| | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4

| | | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | | \--- com.google.android.gms:play-services-measurement-base:16.0.3 -> 16.0.4 (*)

| | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4

| | | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | | \--- com.google.android.gms:play-services-measurement-base:16.0.3 -> 16.0.4 (*)

| | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4

| | | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | | \--- com.google.android.gms:play-services-measurement-base:16.0.3 -> 16.0.4 (*)

| | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4

| | | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | | \--- com.google.android.gms:play-services-measurement-base:16.0.3 -> 16.0.4 (*)

| | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4

| | | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | | \--- com.google.android.gms:play-services-measurement-base:16.0.3 -> 16.0.4 (*)

| | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4

| | | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | | \--- com.google.android.gms:play-services-measurement-base:16.0.3 -> 16.0.4 (*)

| | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4

| | | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | | \--- com.google.android.gms:play-services-measurement-base:16.0.3 -> 16.0.4 (*)

| | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4

| | | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | | \--- com.google.android.gms:play-services-measurement-base:16.0.3 -> 16.0.4 (*)

| | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4

| | | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | | \--- com.google.android.gms:play-services-measurement-base:16.0.3 -> 16.0.4 (*)

| | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4

| | | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | | \--- com.google.android.gms:play-services-measurement-base:16.0.3 -> 16.0.4 (*)

| | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4

| | | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | | \--- com.google.android.gms:play-services-measurement-base:16.0.3 -> 16.0.4 (*)

| | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4

| | | | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

| | +--- com.google.android.gms:play-services-measurement-base:[16.0.4] -> 16.0.4 (*)

如您所见,有些条目“ com.google.android.gms:play-services-measurement-base:16.0.3-> 16.0.4(*)”尽管我并不擅长解释这些条目,我认为这是造成问题的原因.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值