Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在什么情况下会在Android.apk文件中创建多个.dex文件?_Android_Apk_Dex - Fatal编程技术网

在什么情况下会在Android.apk文件中创建多个.dex文件?

在什么情况下会在Android.apk文件中创建多个.dex文件?,android,apk,dex,Android,Apk,Dex,那里 我目前正在研究Ajadx项目,并发现可能有多个classes.dex文件。 有没有人知道为什么,也许还有Android发展史的演变? 谢谢大家! Java的最大.dex(Dalvik可执行文件)操作(非dex大小)为4G(即4G字节) “启用多索引”意味着系统可以根据需要创建多个索引文件 什么时候做dex手术? 无论何时创建apk(即在apk构建中),都会发生这种情况 单个索引的最大大小为65K(即65KB) 注意:如果应用程序中有这么多并发执行,那么8K dex文件可以跨65K dex操

那里

我目前正在研究Ajadx项目,并发现可能有多个classes.dex文件。 有没有人知道为什么,也许还有Android发展史的演变?
谢谢大家!

Java的最大
.dex
Dalvik可执行文件
)操作(非dex大小)为4G(即4G字节)

“启用多索引”意味着系统可以根据需要创建多个索引文件

什么时候做dex手术? 无论何时创建apk(即在apk构建中),都会发生这种情况

单个索引的最大大小为65K(即65KB)

注意:如果应用程序中有这么多并发执行,那么8K dex文件可以跨65K dex操作。即使将总(最大)索引操作大小设置为4G,也可能会出现类似的错误。见下图:

这在构建项目中是可以的,但是,当您尝试构建APK时会出现此错误

要解决此问题,需要启用multidex。启用multidex后,在构建时,Android Studio会从第一个65K dex操作内存生成相应的第一个dex文件,从第二个65K dex操作内存生成第二个dex文件,依此类推

现在,当您更改build.gradle以启用multidex时,您可以构建APK。 现在,您的apk文件已经准备好了。您解压缩apk文件并进入该文件夹。你们可以看到下面的图片。看到这张照片了吗

你看,有两个dex文件:classes.dex和classes2.dex。First classes.dex文件(在我的示例中)是8.3MB,它是前65K个并发dex操作的输出。第二个classes2.dex文件是rest-dex操作的输出(我们不知道确切情况,但我们知道它小于65K)

这样,整个dex文件的总体dex操作是4G(4GB),这是您在这里要求的

希望,我给了你答案

先读相关的-