gpt4 book ai didi

android - 更新到最新的 appcompat 和支持库后出现 DexIndexOverflowException 问题

转载 作者:IT老高 更新时间:2023-10-28 13:12:56 25 4
gpt4 key购买 nike

我正在通过 gradle 使用以下设置:

compileSdkVersion 21
ANDROID_BUILD_MIN_SDK_VERSION=14
ANDROID_BUILD_TARGET_SDK_VERSION=21
ANDROID_BUILD_TOOLS_VERSION=21.0.2
ANDROID_BUILD_SDK_VERSION=21

我的 gradle 文件中还有以下设置:

compile 'com.android.support:support-annotations:21.0.0'
compile 'com.android.support:appcompat-v7:21.0.0'
compile 'com.android.support:support-v4:21.0.0'

我总是收到错误UNEXPECTED TOP LEVEL EXCEPTION
但是,当我将 21.0.0 设置为 20.0.0 时,它工作正常……但我无法访问任何 Android API 21 选项。我在这里做错了什么吗?如果没有这个异常(exception),我如何让它编译?除了其他年级项目(facebook 等)之外,我在其他任何地方都没有支持 jar。

这是完整的堆栈跟踪:

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:502)
at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:283)
at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:491)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:168)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:302)
at com.android.dx.command.dexer.Main.run(Main.java:245)
at com.android.dx.command.dexer.Main.main(Main.java:214)
at com.android.dx.command.Main.main(Main.java:106)

最佳答案

此消息听起来您的项目太大。

你的方法太多了。 dex只能有65536种方法

由于 gradle 插件 0.14.0 和 Build Tools 21.1.0 你可以使用 multidex support .

只需在 build.gradle 中添加这些行:

android {

defaultConfig {
...

// Enabling multidex support.
multiDexEnabled true
}
...
}

dependencies {
compile 'com.android.support:multidex:1.0.1'
}

同样在您的 Manifest 中,将 multidex 支持库中的 MultiDexApplication 类添加到应用程序元素中

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.multidex.myapplication">
<application
...
android:name="android.support.multidex.MultiDexApplication">
...
</application>
</manifest>

如果您使用自己的 Application 类,请将父类从 Application 更改为 MultiDexApplication

关于android - 更新到最新的 appcompat 和支持库后出现 DexIndexOverflowException 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26515378/

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