最近,Google Play商店似乎强制要求所有上传的应用必须在android:debuggable="false"
文件中设置AndroidManifest.xml
。我以前设置了android:debuggable="true"
。
但是,当我android:debuggable="false"
ant clean release
-obfuscate:
/usr/local/Cellar/android-sdk/r21.1/tools/ant/build.xml:875: Can't write [/Users/-/Code/android/bin/proguard/obfuscated.jar] (Can't read [/Users/-/Code/android/libs/android-async-http-1.4.3-no-redirect.jar] (Duplicate zip entry [com/a/a/a/b.class == android-async-http-1.4.3-no-redirect.jar:com/loopj/android/http/AsyncHttpClient$1.class]))
时,我android:debuggable="true"
就会爆炸。
ProGuard似乎是罪魁祸首:
android:debuggable="false"
有关如何进行的任何指导?使用ant clean release
与使用{{1}}的发布版本进行发布构建时,混淆步骤中的哪些更改?
其他一些细节:
答案 0 :(得分:0)
原来我在proguard-project.txt
中包含了一些第三方库,如此:
-injar "libs/android-async-http-1.4.3-no-redirect.jar"
我删除了所有-injar
个库,并使用post-compile
任务替换了我的build.xml
个debug-obfuscation-check
中的proguard <target name="-debug-obfuscation-check">
<property name="proguard.enabled" value="true" />
<path id="out.dex.jar.input.ref" />
</target>
步骤:
-injars
仍然不确定发生了什么。显然在proguard中使用{{1}}库是一种非常糟糕的做法(根据ProGuard手册)。我把所有其他事情归咎于使用scala进行android项目的麻烦。