2014-01-10 99 views
2

我目前正在開發一個相當龐大的Android項目,該項目將包含多達5個不同的應用程序。這些中的每一個都將依賴於android庫。使用Gradle在IDEA中設置項目

這可以通過將共享的android庫構建到.jar文件中並從每個App引用它來輕鬆完成。但問題是這個項目真的處於早期階段,因此庫的代碼將會像應用程序一樣頻繁地發生變化。總是讓圖書館在不同的項目中開放,並且每次做出更改時都會建立它,這將是一件非常痛苦的事情。

  1. 第一個問題是如何設置一個工作區,您可以在該工作區中同時打開應用程序和庫,並直接引用庫。不用擔心.jar文件。
  2. 如果不可能有任何想法?我不能成爲第一個開始使用多個應用程序的大型Android項目的人。
+0

當你說「IDEA」你是指Android Studio嗎?如果您使用的是Android Studio,通過使用應用程序和庫模塊創建項目可以很容易地完成。 – AndroidGuy

回答

2

在Android Studio中執行以下操作:

創建一個新項目。該項目將包含所有不同的APK項目和共享庫。使用「文件 - >新建項目」或從AS的啓動畫面中選擇新建項目。

在該項目中,爲每個單獨的APK創建一個新模塊。使用「文件 - >新模塊 - > Android應用程序」。我將這些類型的模塊稱爲APK模塊。

在該項目中,爲共享庫創建一個新模塊。使用「文件 - >新建模塊 - > Android庫」來創建共享庫。

通過修改「build.gradle」文件爲共享庫添加依賴關係,將共享庫與每個APK模塊相關聯。您必須在每個APK模塊中更改「build.gradle」文件。

dependencies { 
    compile project(':aaa') 
} 

確保將「aaa」替換爲共享庫的名稱。

如果你喜歡,你可以有多個共享庫。

現在可以在一個AndroidStudio項目下訪問所有APK模塊和共享庫的代碼。這種方法的另一個優點是可以將單個項目目錄轉換爲組合APK模塊和共享庫的單個git倉庫。

+0

這樣做的竅門,非常感謝! :) – Hoffmann

0

我嘗試了一段時間擺弄Android Studio和IntelliJ Idea,最好的選擇是導出一切從eclipse。你可以按照下面的步驟(這是做..好象我通常不是一個好主意,但它的工作原理是肯定的:))

  1. 打開ADT或Eclipse和建立新的工作空間。

  2. 創建應用程序並將庫項目作爲庫添加到這些應用程序。庫項目需要再次導入到工作區(我沒有詳細說明,因爲我認爲你知道它)

  3. File > Export > Android > Generate Gradle Build Files這將生成整個工作區的gradle構建文件。然後這可以在IDEA中打開。

如果有幫助,請做回覆。

+0

很高興爲快速回復隊友!你是什​​麼意思,我不得不再次導入庫?我創建完庫後是否必須刪除庫,然後再導入它? – Hoffmann

+0

我並不完全瞭解你。我假設你有一個庫項目,其代碼可以在開發過程中更改,並且您正在使用它來處理5個應用程序。所以我只是認爲你可以將庫添加到5個應用程序中(全部在eclipse中,我們應該再次將庫導入到工作區),然後將整個工作區導出到gradle。 然後在IDEA中導入它時,它會在每次全部自動更改時再次編譯該庫。 – hammergun

1

首先,IntelliJ與Eclipse沒有相同的工作區概念。簡而言之,該模型如下所示:每個IntelliJ項目都有一個窗口。 IntelliJ項目有一個或多個IntelliJ模塊,它們通過源代碼鏈接。來自不同項目的模塊不能通過源鏈接。

關於您的具體問題,我認爲最簡單的解決方案是擁有包含所有應用程序和庫的單一源代碼回購和(多項目)Gradle構建。這將轉化爲一個IntelliJ項目,每個應用程序/庫都有一個IntelliJ模塊,全部由源代碼鏈接。

如果你絕對需要單獨的Gradle構建,並且仍然希望在IDE中快速週轉,那麼據我所知,IntelliJ 13可以通過按下一個按鈕將另一個Gradle構建添加到同一個IntelliJ項目中,也許Android Studio可以做同樣的事情(不確定)。最後但並非最不重要的一點,請記住Android Studio和Gradle Android插件都是早期訪問預覽。

相關問題