gpt4 book ai didi

Android Studio 更新到 1.0 破坏了 MultiDex

转载 作者:太空宇宙 更新时间:2023-11-03 12:33:11 25 4
gpt4 key购买 nike

您好,有类似的错误,例如重复输入。

失败:构建失败,出现异常。

  • 出了什么问题:任务“:eBooks:packageAllDebugClassesForMultiDex”执行失败。

    java.util.zip.ZipException: duplicate entry: android/support/annotation/AttrRes.class

  • 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。

构建失败

总时间:1分46.13秒

apply plugin: 'com.android.application'

dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':ui-reader')

compile "com.android.support:support-v4:23.1.1"
compile "com.android.support:support-v13:20.0.0"
compile files('libs/Flurry_3.2.1.jar')
}

android {
compileSdkVersion 21
buildToolsVersion "20.0.0"

configurations {
all*.exclude group: 'com.android.support', module: 'support-v4'
}

defaultConfig {
// Enabling multidex support.
multiDexEnabled true
}

lintOptions {
abortOnError false
}

sourceSets {

main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}

// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')

// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}

谁能告诉我如何在 jar 文件中找到重复类文件的位置以及如何获得如下输出

com.squareup.okhttp:okhttp:1.6.0| | | +--- com.intellij:annotations:+ -> 12.0

最佳答案

我能够通过包含 aviary-sdk 库在测试项目中重现它。我不需要 multi-dex,也没有研究不同的 SDK 版本,这对我来说似乎有点神秘。

如果你没有 multi-dex,你会得到经典的“multiple dex files define...”错误,这意味着你在你的构建中包含了相同的符号不止一次,这是你不允许的做。

这些问题可能需要一点调查;这就是 gradle dependencies 任务非常方便的地方。如果您进入模块的目录(不是顶级目录)并运行此任务:

../gradlew dependencies

你得到:

compile - Classpath for compiling the main sources.
+--- com.aviary.android.feather.sdk:aviary-sdk:3.4.3.351
| \--- com.aviary.android.feather.sdk:sdk-library:3.5.1
| +--- it.sephiroth.android.library.hlistviewanimations:hlistviewanimations-library:1.0.1
| | +--- it.sephiroth.android.library.horizontallistview:hlistview:1.2.2
| | | \--- com.android.support:support-v4:19.1.+ -> 21.0.3
| | | \--- com.android.support:support-annotations:21.0.3
| | \--- com.nineoldandroids:library:2.4.0
| +--- com.nineoldandroids:library:2.4.0
| +--- it.sephiroth.android.library.disklruimagecache:DiskLruImageCache:1.0.2
| | +--- org.apache.commons:commons-io:1.3.2
| | \--- com.jakewharton:disklrucache:2.0.2
| +--- com.aviary.android.feather.sdk:cds-library:3.2.4
| | +--- com.aviary.android.feather.sdk:common-library:3.1.2 -> 3.1.8.1
| | | +--- org.apache.commons:commons-lang3:3.3.2
| | | +--- com.squareup.okhttp:okhttp-urlconnection:1.6.0
| | | | \--- com.squareup.okhttp:okhttp:1.6.0
| | | +--- com.squareup.okhttp:okhttp:1.6.0
| | | +--- com.intellij:annotations:+ -> 12.0
| | | \--- commons-io:commons-io:2.4
| | \--- com.android.support:support-v4:19.+ -> 21.0.3 (*)
| +--- it.sephiroth.android.library.disklrumulticache:disklrumulticache:1.0.2
| | +--- org.apache.commons:commons-io:1.3.2
| | \--- com.jakewharton:disklrucache:2.0.2
| +--- it.sephiroth.android.library.picasso:picasso:2.3.3.2
| | +--- com.squareup.okhttp:okhttp-urlconnection:1.6.0 (*)
| | +--- com.squareup.okhttp:okhttp:1.6.0
| | \--- com.intellij:annotations:12.0
| +--- com.android.support:support-v4:19.+ -> 21.0.3 (*)
| +--- it.sephiroth.android.exif:android-exif-extended:1.0.2
| | +--- org.apache.commons:commons-lang3:3.3.2
| | \--- org.apache.commons:commons-io:1.3.2
| +--- it.sephiroth.android.library.imagezoom:imagezoom:1.0.5
| | \--- it.sephiroth.android.library.easing:android-easing:1.0.3
| +--- com.aviary.android.feather.sdk:receipt-library:2.0.2
| | +--- com.aviary.android.feather.sdk:common-library:3.1.2 -> 3.1.8.1 (*)
| | +--- it.sephiroth.android.library.ab:ab-test:2.0.3
| | \--- com.android.support:support-v4:19.+ -> 21.0.3 (*)
| +--- com.aviary.android.feather.sdk:common-library:3.1.2 -> 3.1.8.1 (*)
| +--- it.sephiroth.android.library.horizontallistview:hlistview:1.2.2 (*)
| +--- it.sephiroth.android.library.fork.listviewanimations:listviewanimations-library-core:2.6.1
| | \--- com.nineoldandroids:library:2.4.0
| +--- com.aviary.android.feather.sdk:tracking-library:3.0.1
| | \--- com.aviary.android.feather.sdk:common-library:3.1.8.1 (*)
| \--- com.aviary.android.feather.sdk:headless-library:3.4.002000000
| \--- com.aviary.android.feather.sdk:common-library:3.1.2 -> 3.1.8.1 (*)

如果你仔细观察,你会看到两者:

commons-io:commons-io:2.4

org.apache.commons:commons-io:1.3.2

在那里,我没有确认,但我假设是相同类的不同包装,其中包括 org/apache/commons/io/CopyUtils.class

如果您通过以下方式排除 commons-io:

compile ('com.aviary.android.feather.sdk:aviary-sdk:3.4.3.351') {
exclude group: 'commons-io'
}

它将构建。我没有试过运行它,所以我不知道运行时是否会丢失符号;如果有,您可以尝试更彻底地处理从依赖项中排除的内容,或者您​​可以重新打包依赖项以修复错误,或者联系其作者。

关于Android Studio 更新到 1.0 破坏了 MultiDex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27436641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com