【发布时间】:2013-04-17 09:30:48
【问题描述】:
我正在开发一个需要多个库(用于 Facebook、Google Maps v2 和 Quickblox 等)的 Android 应用,导致方法量溢出超过 64K 限制:
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
因为我不能没有这些库,所以我寻找方法限制错误的解决方案。我从 Android 开发者那里找到了一篇很受欢迎的博客文章,其中建议进行源代码划分。 (我正在谈论的博客条目可以在这里找到:http://android-developers.blogspot.com.es/2011/07/custom-class-loading-in-dalvik.html)。我一直在尝试这个解决方案,但没有成功。
我现在遇到的问题是,最多的代码不是在我的应用程序本身,而是在所需的库中,所以我必须将这些库分布在我必须在我的应用程序中加载的不同 dex 文件中。我对Ant的了解非常有限,我想知道的是我应该在我的build.xml文件中写什么让dex复制我想要的每个库:
<!-- Primary dex to include my source code and some libraries. -->
<copy todir="${out.classes.absolute.dir}.1" >
<fileset dir="${out.classes.absolute.dir}" >
...
</fileset>
</copy>
<!-- Secondary dex to include some other libraries. -->
<copy todir="${out.classes.absolute.dir}.2" >
<fileset dir="${out.classes.absolute.dir}" >
...
</fileset>
</copy>
任何帮助将不胜感激。提前致谢,问候!
【问题讨论】:
-
您找到解决方案了吗?我有完全相同的问题。
标签: android ant quickblox antbuilder