我从 2.1 开始就注意到了这一点。我认为问题出在 Eclipse 导出到 APK 插件或我的设置中的其他地方(尽管我不知道它可能在哪里)。
基本上,我的 APK 大小突然翻了一番!一些调查表明,Eclipse 现在两次包含 drawable 目录(以及 raw、layout 和 xml 目录)。它一次包含在 res 子目录下,一次包含在应用程序的根目录下。
因此,与其采用如下目录结构:
- com
- META-INF
- res
- drawable
- layout
- raw
- xml
...
我有:
- com
- drawable
- layout
- META-INF
- raw
- res
- drawable
- layout
- raw
- xml
- values
- values-fr
- xml
有没有人遇到过这种情况?有谁知道为什么会这样?它将我的应用程序大小从 3mb 增加到超过 6mb,这是一个大问题。
我目前的解决方法是使用 eclipse 导出一个未签名的包,从根目录中删除 drawable、layout、raw 和 xml 文件,然后手动对其进行签名和 zipalign。
如果您想查看 apk,请查看 this apk (with the problem)和 this apk (that I have fixed manually) .两者都有效,一个只有两倍大。
我正在使用 Eclipse SDK,版本:3.5.2,构建 ID:M20100211-1343,Android 开发工具包版本:10.0.1.v201103111512-110841,虽然我在最后几个 ADT 中遇到了问题,因为 2.1出来。我编译的 APK 级别似乎并不重要。
感谢您的帮助,有见识!
最佳答案
我终于解决了这个问题!
由于某种原因,我的 .classpath 文件中有一个错误,我自己从未编辑过这个文件,但在机器、eclipse 版本和 SDK 版本之间的所有迁移中,它一定是漏掉了。
内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="res"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>
将其更改为:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>
修复了问题。 Yippee!
关于android - Eclipse Export Signed Package 两次添加 drawables 目录,使 apk 大小增加一倍!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6147385/