1

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

谁能向我解释为什么它不起作用以及如何修复它以使用正确的绝对路径?

谢谢你。

4

1 回答 1

1

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

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

于 2011-12-01T00:33:24.467 回答