我有一个奇怪的问题。在我的bash脚本或Makefile中,使用带有绝对路径的aapt不起作用,但是如果我在本地目录中它就可以。
如果我执行以下操作,则不起作用:
aapt add $OUT/device.jar $OUT/classes.dex
该命令运行并打印此输出:
'/homes/rsevile/CS307/bin/Device/classes.dex'...
但是在尝试加载jar时,我尝试加载的类最终找不到。
以下情况确实有效:
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的绝对路径时,我的班级最终找不到。
有人可以向我解释为什么它不起作用以及如何解决它以使用正确的绝对路径吗?
谢谢。
答案 0 :(得分:1)
我意识到aapt实际上保持着绝对的道路,没有办法绕过它。
我通过重用jar并使用-C选项来解决问题,该选项允许我指定一个目录。