簡體   English   中英

如何使Android Gradle項目使用復制到libs文件夾中的jar文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM