所以我最近注意到我的Phonegap / Android项目中的一个文件夹(project / bin / dexedLibs),这个文件夹包含两个.jar文件。在浏览互联网之后,我找到了一个网站,其中作者说ADT版本21在项目中放置了“预先设定的Libs”以加快构建时间。
我最近升级到ADT 21并且只是想知道是否还有其他人可以向我提供有关这些“预先设定的Libs”真正做什么的更多信息?我无法在网上找到任何其他有用的信息。
答案 0 :(得分:10)
我有一个包含大约20个外部库的Android项目。在ADT 21之前,每次我更改源代码都需要很长时间才能重建应用程序。现在它很快!
我想原因是,在ADT 21之前,每当你点击eclipse中的“Run”按钮时,它就会将外部库编译成dex代码。现在它只编译外部库的dex代码一次(直到它们发生变化)并使用预构建库以便以后“运行”。
我喜欢这个功能!
答案 1 :(得分:5)
请注意!我花了一个小时才弄清楚为什么会得到例外:
Caused by: java.lang.NoSuchMethodError:
原因是因为我用工作方法将我的lib jar更改为新jar(同名),并且ADT 21没有在dexedLibs中准备新的jar。
所以只需删除bin目录,Eclipse就会重新创建它。
答案 2 :(得分:0)
问题是大约2岁但仍有兴趣。
对于稍后浏览的人:我遇到了麻烦,因为我将Cordova项目从my.name.a3e
重命名为my.name.A3E
,然后构建过程崩溃了。发现ant-build中的dexed文件没有刷新(区分大小写)。删除ant-build
文件夹后,它工作正常,但是第一次构建后的构建时间更长。
dex文件是Dalvik EXecutable文件,一些可以由Dalvik虚拟机执行的编译字节代码。 Dalvik是Android的核心组件,因此它就是它的原因。
http://sourceforge.net/projects/dexer/ http://developer.android.com/reference/dalvik/system/DexFile.html http://fileinfo.com/extension/dex
请注意,Eclipse项目清理不会删除dexed libs。