我们有自己的Android构建系统,原因很多。我们目前用aapt构建apk。问题是现在存在对包含自定义资源的jar文件的依赖性。例如,jar文件如下所示:
/META-INF
/foo.properties
/my_custom_dir/
/i_hate_my_life/
使用以下命令:
aapt p --auto-add-overlay -f \
-M src/main/AndroidManifest.xml \
-I $(ANDROID_HOME)/platforms/android-19/android.jar \
-S src/main/res/ \
-S $(ANDROID_HOME)/extras/android/support/v7/appcompat/res/ \
-S $(ANDROID_HOME)/extras/google/google_play_services/libproject/google-play-services_lib/res/ \
-F bin/SampleApp.unaligned 1>/dev/null
完全忽略那些额外的目录,我的应用程序崩溃很好,因为那个jar需要那些小虫子。
我已经尝试过-j开关,只包括类。除了编写自定义脚本或解压缩第三方jar并使用appt add(barf)之外,任何人都有其他线索吗?
在你说使用蚂蚁或gradle之前......这不是一个选择!
更新:
现在我的Makefile中有这种讨厌的东西,它正在工作......
@mkdir -p bin/tmp/
@for i in $(JARS_MIN); do\
cp $$i bin/tmp/; \
done;
@cd bin/tmp/; \
for i in `ls`; do\
unzip -o $$i; \
rm $$i; \
rm -rf META-INF/; \
rm -rf com/; \
rm -rf org/; \
rm -rf android/; \
rm -rf edu/; \
rm -rf javax/; \
rm -rf net/; \
done;
cd bin/tmp/; zip -g -r ../SampleApp.unaligned *