2010-02-19 47 views
1

現場:我有一個像下面這樣的目錄結構:1.6和2.1之間的子目錄有不同的aapt行爲?

mkdir -p foo/bar 
touch foo/bar/test.txt 

我想要做的是test.txt的目錄富/欄下增加一個.apk文件,以便解壓縮或上市APK返回相同的目錄結構。

這1.6 SDK下工作得很好:

aapt add test.apk foo/bar/test.txt 

我可以列出和解壓縮test.apk,一切都很好。然而,在2.1下,test.txt被添加到test.apk的根目錄,這不是我想要的。

我剛剛在我桌面上的2.1 SDK和我的筆記本電腦上的舊版本1.6上測試了這一點,並且我已經證實它曾經工作過,現在沒有。

我看過aapt命令行選項,如果有--keep-the-files-i-add-in-their-subdirectories選項,那麼我只是沒有看到它。 :/谷歌搜索也沒有返回任何有用的東西。

真的很感謝幫助。我需要將第三方.properties文件存儲在我的Android應用程序中,以便它們位於類路徑中,而我無法找到正確的命令行符號是阻止此應用程序停止運行的唯一攔截器。 :)

謝謝一堆。

+1

我不認爲你正在嘗試做的事情是官方支持的。 – CommonsWare 2010-02-19 23:32:16

+0

@CommonsWare它被支持 - 我們已經使用它。但是許多Windows AAPT版本被破壞。 – 2011-05-04 08:53:11

回答

0

看來在Win vs. Ubuntu(所有Linux?)中可能會有不同的行爲。我可以確認Nolan在我的Ubuntu-karmic機器下的原始文章中所說的內容。 Windows下的dir結構得到了很好的補充,全部使用Android-8。有誰知道爲什麼或如何解決這個問題?

0

您看到的行爲是AAPT中的錯誤。您可以在Repackage APK file to contain custom assets - what build tool to use?找到更多信息。

在某些SDK中有AAPT的破碎版本。正確的行爲是它應該像你所描述的那樣工作,但我也努力讓它工作。

不幸的是,我不能告訴你哪個SDK有一個可用的AAPT版本 - 我們辦公室裏有人發現它是通過試錯法進行的,所以我們已經將它存檔用於我們的開發目的,現在我們只使用該副本。

因此,解決方案是下載許多SDK,並嘗試每個AAPT(吸收,辛苦,並不是一個很好的解決方案,但它的工作原理)。 AAPT非常棒,你可以把它做好。

我們用它來定位2.1,但我不確定它是我們使用的2.1 SDK版本。

(不,使用谷歌搜索這也沒有幫助我 - 可悲的是太多的關於這個問題的噪音)。

相關問題