好吧,爲了使用其他模塊的資源,你必須做一些事情。
確定如何打包和使用模塊。該模塊是「適用於」該應用程序還是用於其他應用程序。
如果它被多個項目使用,那麼我建議將它打包爲AAR並在您自己的Maven Repo中託管,並通過Gradle提取以避免項目依賴於代碼庫本身。
如果它只被這個項目使用,那麼你也必須做一些事情。
1)確保settings.gradle包含模塊。如果它對於項目目錄是本地的,你可以用simple:moduleName來完成。否則,您可以使用
include 'myLib'
project(':myLib').projectDir = new File('../../../workspace/libs/myLib')
一旦您完成了此操作,確認Gradle Sync將模塊拉入項目。而不僅僅是一個帶有IML的空文件夾。如果它是空文件夾,請確認您的路徑並重試。
步驟2)所以你成功地導入你的模塊,你可以在你的目錄中看到它。但是,您不能讓模塊依賴於應用程序,應用程序依賴於模塊。它被稱爲循環依賴,所以你必須只有應用程序依賴於模塊。轉到您的應用程序的模塊之一,它具有
apply plugin: 'com.android.application'
並轉到依賴部分,包括
compile ':myLib'
現在,你需要確認你的編譯MYLIB工作(MYLIB是你的lib的名稱)。要確認您可以從終端執行assembleRelease並查看它是否有任何問題,或者您也可以執行Gradlesync。
如果有效,您現在可以將資源或文件導入到父應用程序模塊的任何Activity中,只需在頂部包含導入語句即可。
現在你可以做像HelperClass.doSomething(其中helperClass住在myLibs中)的東西。
所以讓我們再來一步。也許你需要HelperClass才能響應應用程序模塊。然後,您必須在IMyCallBack的myLib中提供一個接口,並使用您要調用的任何方法,並讓父模塊調用活動實現回調接口。
這是回答您的問題還是您有另一個問題。如果您的依賴關係設置正確,那麼訪問子模塊的內容應該沒有問題。
來源
2017-10-05 02:24:17
Sam
更具體,我會很樂意提供幫助。你有問題,包括額外的模塊到你的項目?它們是否包含在內,但不能單獨編譯它們?你的問題到底是什麼。 – Sam
@Sam更新。請檢查 –