2011-11-29 81 views
1

我有一種奇怪的問題。在我的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的絕對路徑時未能找到。

任何人都可以請向我解釋爲什麼它不工作,我該如何解決它以使用適當的絕對路徑請?

謝謝。

回答

1

我意識到aapt實際上保持了絕對路徑,沒有辦法繞過它。

我通過重新使用jar和使用允許指定目錄的-C選項解決了該問題。