Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.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
Java Android:巨型模式vs多索引_Java_Android_Gradle_Dex - Fatal编程技术网

Java Android:巨型模式vs多索引

Java Android:巨型模式vs多索引,java,android,gradle,dex,Java,Android,Gradle,Dex,我不完全确定将dex选项“jumbomode”设置为true与添加multidex支持之间的区别 将jumbo mode设置为true或将multidex设置为true似乎可以解决以下问题 AGPBI: {"kind":"SIMPLE","text":"UNEXPECTED TOP-LEVEL EXCEPTION:","position":{},"original":"UNEXPECTED TOP-LEVEL EXCEPTION:"} AGPBI: {"kind":"SIMPLE","text"

我不完全确定将dex选项“jumbomode”设置为true与添加multidex支持之间的区别

将jumbo mode设置为true或将multidex设置为true似乎可以解决以下问题

AGPBI: {"kind":"SIMPLE","text":"UNEXPECTED TOP-LEVEL EXCEPTION:","position":{},"original":"UNEXPECTED TOP-LEVEL EXCEPTION:"}
AGPBI: {"kind":"SIMPLE","text":"com.android.dex.DexIndexOverflowException: Cannot merge new index 65772 into a non-jumbo instruction!","position":{},"original":"com.android.dex.DexIndexOverflowException: Cannot merge new index 65772 into a non-jumbo instruction!"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.InstructionTransformer.jumboCheck(InstructionTransformer.java:109)","position":{},"original":"\tat com.android.dx.merge.InstructionTransformer.jumboCheck(InstructionTransformer.java:109)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.InstructionTransformer.access$800(InstructionTransformer.java:26)","position":{},"original":"\tat com.android.dx.merge.InstructionTransformer.access$800(InstructionTransformer.java:26)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.InstructionTransformer$StringVisitor.visit(InstructionTransformer.java:72)","position":{},"original":"\tat com.android.dx.merge.InstructionTransformer$StringVisitor.visit(InstructionTransformer.java:72)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.io.CodeReader.callVisit(CodeReader.java:114)","position":{},"original":"\tat com.android.dx.io.CodeReader.callVisit(CodeReader.java:114)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.io.CodeReader.visitAll(CodeReader.java:89)","position":{},"original":"\tat com.android.dx.io.CodeReader.visitAll(CodeReader.java:89)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.InstructionTransformer.transform(InstructionTransformer.java:49)","position":{},"original":"\tat com.android.dx.merge.InstructionTransformer.transform(InstructionTransformer.java:49)"}
...

巨型模式,读取时 ,const string/jumbo是字符串的巨型模式。这是关于操作码的,比如“op vAA,string@BBBBBBBB“对”作战vAA,string@BBBB,32位对16位

多索引允许从多个索引文件加载类。primary classes.dex必须包含调用此类方法所需的类。在应用程序apk中找到的辅助dex文件将在第一次调用MultiDex.install(上下文)后添加到类加载器中 请参见

查看此内容(搜索jumbo):

简言之: -与Android方法计数限制(64K)类似-字符串计数有一个限制(64K) -为了克服这一限制,jumbo模式通过使用特殊的操作码(最多可编码2^32个字符串)来启用引用2^16个以上的字符串

实际上: -根据我的经验,两者(MultiDex和JumboMode)对apk安装时间都有重大影响(慢得多)


希望这对您有所帮助:)

字符串计数可能重复的字符数您是指一个字符串变量中的字符数还是字符串变量的总数?