Tag: dex

如何缩小代码 – 65k的方法限制在dex

我有一个相当大的Android应用程序依赖于许多库项目。 Android编译器每个.dex文件有65536个方法的限制,我超过了这个数字。 基本上有两条path可以select(至less我知道),当你达到方法限制时。 1)缩小你的代码 2)构build多个dex文件( 请参阅此博客文章 ) 我仔细观察了两者,试图找出导致我的方法数量如此之高的原因。 Google Drive API占用了12,000多个Guava依赖项的最大块。 Drive API v2的总库数达到23,000! 我想我的问题是,你认为我应该怎么做? 我应该删除Google云端硬盘集成作为我的应用程序的function? 有没有办法缩小API(是的,我使用proguard)? 我应该去多个dex路线(看起来相当痛苦,尤其是与第三方API打交道)?

构build时,Android dex提供了一个BufferOverflowException

当编译一个特定的Android项目,并且只在我的Windows机器上,我从dex中得到一个java.nio.BufferOverflowExceptionexception。 使用Eclipse和使用Ant时都会出现这个问题。 使用Ant时的输出是: … [dex] Pre-Dexing C:\MyProject\libs\android-support-v4.jar -> android-support-v4-5f5341d3c1b10a79d7d93f9c1e64421e.jar [dex] Converting compiled files and external libraries into C:\MyProject\bin\classes.dex… [dx] [dx] UNEXPECTED TOP-LEVEL EXCEPTION: [dx] java.nio.BufferOverflowException [dx] at java.nio.Buffer.nextPutIndex(Buffer.java:499) [dx] at java.nio.HeapByteBuffer.putShort(HeapByteBuffer.java:296) [dx] at com.android.dex.Dex$Section.writeShort(Dex.java:818) [dx] at com.android.dex.Dex$Section.writeTypeList(Dex.java:870) [dx] at com.android.dx.merge.DexMerger$3.write(DexMerger.java:437) [dx] at com.android.dx.merge.DexMerger$3.write(DexMerger.java:423) [dx] at com.android.dx.merge.DexMerger$IdMerger.mergeUnsorted(DexMerger.java:317) [dx] at com.android.dx.merge.DexMerger.mergeTypeLists(DexMerger.java:423) [dx] at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:163) [dx] at com.android.dx.merge.DexMerger.merge(DexMerger.java:187) […]

有没有可能反编译Android的.apk文件?

用户是否可以将我的应用程序的apk文件转换回实际的代码? 如果他们这样做 – 有什么办法来防止这种情况?

将DEX反编译成Java源代码

如何将Android DEX(VM字节码)文件反编译成相应的Java源代码?

无法执行dex:多个dex文件定义Lcom / myapp / R $数组;

由于更新到ADT 14我不能再build立我的项目。 更新之前,它正在build设好。 错误: [2011-10-23 16:23:29 – Dex Loader] Unable to execute dex: Multiple dex files define Lcom/myapp/R$array; [2011-10-23 16:23:29 – myProj] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/myapp/R$array; 已经有类似的报道,我也尝试了其中的build议 重新启动Eclipse 。 清理项目并重build – 禁用“Project-> Build Automatically”选项,然后“Clean”和“Build”项目,然后尝试运行。 重置“自动构build”选项打开 重新安装Android开发者工具 重新安装Eclipse(更新到最新版本3.7.1) 从文件系统创build一个新的项目导入 从颠覆创build一个新的项目。

无法执行dex:方法ID不在:65536

以前我见过各种版本的dex erros,但是这个是新的。 干净/重新启动等不会帮助。 库项目似乎完好无损,依赖关系似乎正确链接。 Unable to execute dex: method ID not in [0, 0xffff]: 65536 Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536 要么 Cannot merge new index 65950 into a non-jumbo instruction 要么 java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536 tl;博士 :Google的官方解决scheme终于来了! http://developer.android.com/tools/building/multidex.html 只有一个小提示,你可能需要这样做,以防止分配时出现内存不足。 […]