我正在使用鈦這是一個跨平臺的開發工具。 Titanium使用它自己的構建腳本來創建apk。aapt爲什麼不在apk中添加'<values/>`?
我有一個使用本地模塊的Titanium應用程序:一個可以進行VOIP調用的Java庫。 Java應用程序可以工作,並且當我使用空模塊創建Titanium應用程序時,它可以工作。
但我有一個構建問題使用基於Titanium應用程序內的VOIP模塊的模塊:一些資源在apk中丟失。
首先構建系統將我們的Titanium應用程序和一些原生android模塊中的一些資源合併,並將它們放在目錄build
中。我有例如:build/android/res/values/strings.xml
文件其中所有的鍵和值似乎是好的和有效的xml。
然後構建調用aapt並使用庫資源(例如:用於通知的字符串)的Titanium資源創建apk。在這個apk中,build/android/res/values/strings.xml
丟失。它不存在。應用程序啓動,VOIP服務啓動,然後一旦所需的缺失資源被調用就會崩潰。
我可以aapt list
或解壓縮APK是strings.xml
丟失證明。
尋找在JavaScript編譯文件,我看到的是執行該命令的鈦深:
aapt "package" "-f" "-m" "-J" "/Users/nicorama/ti-voip/build/android/gen"
"-M" "/Users/nicorama/ti-voip/project/build/android/AndroidManifest.xml"
"-S" "/project/build/android/res"
"-S" "/var/folders/6f/twxz46614h7_q/res"
"-S" "/var/folders/6f/twxz46614h7_q/res" ....
的/var/folders/...
是鈦部件文件。如果我刪除它們,編譯apk失敗。 我在構建版本之外執行了此命令,爲詳細模式添加-v
並將結果保存到log.txt
。我在尋找在這個文件中的strings.xml,我發現:
Found 18 custom asset files in /Users/nicorama/ti-voip/build/android/bin/assets
Configurations:
(default)
v11
v14
....
Src:() /var/folders/6f/twxz46614h7_q/res/values/ids.xml
values/strings.xml
Src:() /var/folders/6f/twxz46614h7_q/res/values/strings.xml
Src: (af) /var/folders/6f/twxz46614h7_q/res/values-af/strings.xml
Src: (am) /var/folders/6f/twxz46614h7_q/res/values-am/strings.xml
...
但是關於我的/Users/nicorama/ti-voip/build/android/res/values/strings.xml
文件夾是首先在聘任命令罷了。
我有需要的圖片或其他XML文件的所有引用心想:
(new resource id hidden from /Users/nicorama/ti-voip/build/android/res/layout/hidden.xml)
(new resource id launcher from /Users/nicorama/ti-voip/build/android/res/layout/launcher.xml)
任何想法,爲什麼這strings.xml中消失了?
更新了我的答案,你是否能夠測試它。 – ashoke 2014-10-11 06:09:28