回答
基於Gradle的new Android Build System支持庫項目中的資源文件夾!
使用Ant構建基於它仍然不可能:
庫項目不能包含原始資產。 (見docs)
但是你可以
- 副本手動資產
- 甚至修補AAPT工具(見http://devmaze.wordpress.com/2011/06/26/enabling-assets-in-android-libraries/)
從Eclipse和ANT你可以參考來自多個項目的相同「資產」文件夾。 這允許您的源代碼樹擁有資產文件的單個副本,但將它們包含在多個APK中。
見Android: targeted res folders for debugging in eclipse
從項目A我能夠從項目B引用.. \項目A \資產。 在Eclipse上(至少在Windows下,我還沒有在Linux上嘗試過),我不得不創建一個新變量來引用.. \ ProjectA,並在「鏈接文件夾位置」中使用該變量。如果我試圖在「鏈接文件夾位置」中使用「..」,eclipse將不會接受它。
它有可能把資產注入導致庫jar的小修正:
PUT 「custom_rules.xml」 到你的資料庫項目主頁(build.xml中附近):
<?xml version="1.0" encoding="UTF-8"?>
<project name="custom_rules">
<target name="-post-compile" if="${project.is.library}">
<echo>Post Compile: add assests from ${asset.absolute.dir} to ${out.library.jar.file}</echo>
<jar destfile="${out.library.jar.file}" update="true">
<zipfileset dir="${asset.absolute.dir}" prefix="assets" excludes="**/*.java ${android.package.excludes}"/>
</jar>
</target>
這會將您的庫資產打包到您的庫jar中。因此,這些資產將被包含在您的應用程序的結果.apk中。
經過對Android SDK工具版本21.1.0上OSX
對於使用IntelliJ IDEA的這些,你可以更改您的應用程序模塊的包裝設置包括depedent資產。請注意,這是在IntelliJ Community版本的14.0.2版上完成的。我的主應用程序模塊現在繼承了我的圖書館項目的資產文件夾中的文件,就好像它們在主項目中一樣!
右鍵單擊應用程序模塊> Open Module SEttings。在模塊>打包選項卡上選擇Android樹節點。選中「將依賴項中的資產包含到APK中」
注意:我從來沒有使用Android Studio,但我猜想在該應用程序中有類似的設置。
我知道你不應該發表「謝謝」評論。但是,謝謝!我剛剛升級了我的IntelliJ,我的圖書館資產消失了。 – 2015-03-27 23:52:49
通過創建的Android LIB項目,創建後關閉的開始。這會卜自動構建的窗口上
使用CMD端子的Android命令是批處理文件
添加工具路徑 C:\用戶\ user_bss> PATH =%PATH%; C:\ ADT-束-Windows的x86-20140321 \ SDK \工具
生成的build.xml螞蟻 Android的更新項目-p C:\用戶\ user_bss \文件\工作區\ -N SDKAdvanced SDKAdvanced
記事本custom_rules.xml從添加代碼以上別忘了結束標籤
下運行「ant調試」或「螞蟻發佈」打造
你會看到在bin目錄classes.jar這是你裝的lib
- 1. 無法從Android中的資產文件夾複製數據庫
- 2. android-從資產文件夾中複製文件
- 3. 從資產文件夾複製SQLite數據庫
- 4. java android複製文件資產
- 5. [Android資產]:文件或文件夾?
- 6. 在Android中的資產文件夾中複製兩個SQLite數據庫
- 7. 複製資產文件
- 8. 複製從資產現有的數據庫文件夾內部數據庫文件夾錯誤
- 9. 角度cli複製文件的資產文件夾
- 10. Android資產與子文件夾
- 11. Android資產文件夾的安全性
- 12. Android Studio中的資產Fonts文件夾
- 13. 如何將數據庫從資產文件夾複製到數據庫文件夾?
- 14. Maven資源沒有被複制到jar文件中
- 15. 從音樂文件夾瀏覽到資產文件夾android
- 16. dll引用沒有被複制到Bin文件夾中
- 17. Jars沒有被複制到Tomcat的lib文件夾中
- 18. 如何將資產文件夾的內容複製到SD卡?
- 19. SQLite爲什麼我們在資產文件夾中複製db
- 20. Android Studio(來自資產文件夾的數據庫)
- 21. 無法從資產文件夾(Android Studio)加載數據庫
- 22. 複製文件夾結構沒有.svn文件夾
- 23. Android mkdir沒有製作文件夾
- 24. 資產文件夾結構
- 25. Rails 3.1.0資產文件夾沒有渲染:Sprockets :: Environment#static_root已被棄用
- 26. webapps文件夾(css,jsp等)中的文件夾沒有被複制到svn倉庫中
- 27. 將資產數據庫從資產複製到設備數據文件夾時出現FileNotFoundException
- 28. 資產文件夾中的DB文件。它會被更新嗎?
- 29. 從sd複製文件到資產
- 30. android從資產複製文件夾到內部設備應用程序數據文件夾
以防萬一,目前尚不清楚(因爲這不是我的):您不需要在Android Studio中使用Gradle配置任何特別的東西:看起來庫的資源會自動包含在內。 – user2808624 2018-01-06 11:24:20
@ user2808624是的,但我想補充一點,您可能需要將消費應用程序的'build.gradle'中的依賴項聲明爲'@ aar',以確保依賴項包含爲'aar'而不僅僅是'jar'。在所有情況下,這可能都沒有必要,但我發現大部分時間都是必要的。所以爲了安全起見,當依賴一個需要共享資源的庫時,我會使用'@ aar'後綴。我認爲這是在Maven上部署庫時所必需的 – Sakiboy 2018-02-06 08:13:03