绝对路径不适用



我有一个奇怪的问题。在我的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的绝对路径时,我的类最终找不到。

有没有人能向我解释一下为什么它不工作,我怎么能修复它使用一个适当的绝对路径请?

谢谢。

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

我修复了这个问题,通过重用jar和使用-C选项,让我指定一个目录。

最新更新