aapt不能使用绝对路径

问题描述:

我有一种奇怪的问题。在我的bash脚本或Makefile中,使用带有绝对路径的aapt不起作用,但是如果我处于本地目录中,aapt不能使用绝对路径

如果我这样做,这是行不通的:

aapt add $OUT/device.jar $OUT/classes.dex 

该命令会运行和打印输出:

'/homes/rsevile/CS307/bin/Device/classes.dex'... 

但是,试图装入罐子时,类我我试图加载最终没有找到。

下面做工作,但:

cd $OUT 
aapt add device.jar classes.dex 

印刷:

'classes.dex'... 

这是整个代码被脚本执行(工作):

javac -d $(OUT)/classes -classpath ./layoutlib.jar src/com/device/client/*.java 
jar cf $(OUT)/device.jar $(OUT)/classes $(OUT)/layoutlib 
dx --dex --no-strict --output=$OUT/classes.dex $OUT/device.jar 
cd $OUT 
aapt add device.jar classes.dex 
cd $ROOT 
adb push $OUT/device.jar $ANDROID_OUT_DIR 

我混淆了为什么我的课程在使用带有aapt的绝对路径时未能找到。

任何人都可以请向我解释为什么它不工作,我该如何解决它以使用适当的绝对路径请?

谢谢。

我意识到aapt实际上保持了绝对路径,没有办法绕过它。

我通过重新使用jar和使用允许指定目录的-C选项解决了该问题。