gpt4 book ai didi

java - .dex 文件中引用的方法个数不能超过 64K 和 java.lang.UnsupportedOperationException

转载 作者:搜寻专家 更新时间:2023-11-01 08:30:10 25 4
gpt4 key购买 nike

我是安卓新手。我正在尝试构建一个 apk 文件。在构建应用程序时,它以两个错误结束:
一种)。在第一个错误中,它说 The number of referenced method in .dex file cannot exceed 64K 并给了我这个 Link .
b).在第二个错误中,它显示 java.lang.UnsupportedOperationException。
我已经成功添加了 multidex 支持库并生成了一个 apk 文件用于测试和修复问题。像这样

android {
compileSdkVersion 22
buildToolsVersion "23.0.0"

defaultConfig {
minSdkVersion 14 //lower than 14 doesn't support multidex
targetSdkVersion 22

// Enabling multidex support.
multiDexEnabled true
}
}

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


但我在这里仍然没有什么疑问
一种)。为什么我需要添加 multidex 支持库?
b). future 的目标是什么?
C)。第二个错误是什么意思?
d).它在什么意义上说 .dex 文件不能超过 64K?你能帮帮我吗?
谢谢。

最佳答案

a).为什么我需要添加 Multidex 支持库?

-> 这样做的目的是将您的 Dex 文件拆分为多个 Dex 文件。此库支持使用多个 Dalvik 可执行 (DEX) 文件构建应用程序。引用超过 65536 个方法的应用程序需要使用 Multidex 配置。

b). future 的目标是什么?

-> Android 有一个问题,即 Dex 文件中方法定义的数量有上限 (64k)。这意味着一旦达到该限制,您就无法进一步扩展您的应用程序。

在 Multidex 之前,建议使用 ProGuard 通过删除代码中未使用的方法来减少方法定义的数量。在实现 Google Play 服务框架时特别有用。

随后引入了 Multidex,它允许应用程序继续扩展而不必担心方法计数限制。它确实存在使应用程序更加不稳定的危险。因此,建议先尝试 ProGuard 以减少方法数。

c).第二个错误是什么意思?

java.lang.UnsupportedOperationException

引用:https://stackoverflow.com/a/21061985/3758024

请提供您的应用中此次崩溃的完整崩溃日志/堆栈跟踪以及相关代码段。

d).什么意义上说.dex文件不能超过64K?你能帮帮我吗?

-> Android 应用程序 (APK) 文件包含 Dalvik 可执行 (DEX) 文件形式的可执行字节码文件,其中包含用于运行应用程序的已编译代码。 Dalvik Executable 规范将单个 DEX 文件中可以引用的方法总数限制为 65,536——包括 Android 框架方法、库方法和您自己的代码中的方法。在计算机科学的上下文中,术语 Kilo, K 表示 1024(或 2^10)。因为 65,536 等于 64 X 1024,所以此限制称为“64K 引用限制”。

更多引用。

1) https://developer.android.com/studio/build/multidex.html#avoid

2) https://medium.com/@rotxed/dex-skys-the-limit-no-65k-methods-is-28e6cb40cf71#.3eg897jca

3) https://blog.mustafaali.xyz/dexs-64k-limit-is-not-a-problem-anymore-well-almost-2b1faac3508#.wiaruldue

4) http://www.fasteque.com/deep-dive-into-android-multidex/

关于java - .dex 文件中引用的方法个数不能超过 64K 和 java.lang.UnsupportedOperationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41627654/

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