[英]Convert android library project to jar file with resources (libs and build folder)
[英]How to make an Android Gradle project use a jar file that's copied into the libs folder?
我使用gradle構建需要外部jar文件進行構建的Android項目(“ projectA”)。
我還有另一個項目(在本例中為Unity3d,因此我們將其稱為“ projectU”)可以創建一個jar文件。 該外部項目是通過單獨的build.gradle文件構建的。
在通過gradle構建projectA之前,我先構建projectU。 然后,將幾個文件從完成的projectU構建中復制到projectA的gradle Android項目目錄中。
需要從projectU復制到projectA的文件:
1.)進入projectA / assets /的項目數據文件2.)進入projectA / src / main / jniLibs /的本機庫3.)進入unita-classes.jar的文件進入projectA / libs / unity-classes 。罐
當我手動復制這些文件然后構建projectA時,它運行良好。
我現在想通過Gradle自動執行此操作。 我有一個projectU的build.gradle和一個projectA的。 projectA中的一個具有將上述文件從projectU復制到projectA的項目目錄中的任務。
當我通過命令行手動構建projectU,然后在該projectA之后,它可以完美地工作:
gradlew:projectU:build gradlew:projectA:assembly
但是,當我在projectA的build.gradle內將projectU設置為projectA的依賴項時,由於無法看到“ unity-classes.jar”文件,因此projectA的構建失敗。 好像文件沒有足夠早地進入構建目錄。
如果我第二次運行相同的構建(之前沒有進行清理),則可以正常工作,因為unity-classes.jar文件已經存在,並且可以通過projectA的gradle構建找到。
問題:
1.)如何確保在projectA中執行任何android任務(或評估?)之前,我的projectU構建以及projectA中復制文件的任務運行? 要么
2.)我必須在哪里復制unity-classes.jar文件,以便將其包含在projectA的Java編譯中?
還是有其他方法?
謝謝!
是的,你可以這么做。 在使用Gradle之前我已經做過,但是已經很長時間了,我不太記得。 去年我一直在使用Maven,它也可以從系統中加載文件。 一個好的依賴管理系統可以為您提供這種靈活性。
此鏈接對您有幫助嗎?
如果我了解您要解決的第二個問題,我建議在項目A中創建一個“ libs”目錄,其中包含unity-classes.jar,然后在您的依賴項(build.gradle)中找到它。
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs') }
也許在libs文件夾中保留unity-classes.jar的副本,以便您的項目可以構建。
希望這對您有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.