私は一種の奇妙な問題を抱えています。私の 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 で絶対パスを使用すると、なぜクラスが見つからないのか混乱しています。
なぜ機能しないのか、適切な絶対パスを使用するように修正する方法を教えてください。
ありがとうございました。