首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android Library 專案導致主專案 Private Libraries 消失之解決

     編輯:程式設計綜合問答

現象

將一個 Android 專案標記為 Library (`isLibrary=true`) 並被主專案引用後,主專案的 `Android Private Libraries` 消失,原 Library 專案中的 jar 檔無法被主專案存取。

原因

ADT / Gradle 機制:被標記為 Library 的專案,**不會**將其 `libs/` 目錄下的 jar 自動暴露給依賴它的專案。`Private Libraries` 僅屬於該 Library 專案本身。

解決步驟

  1. 開啟 Library 專案的 `Properties` → `Java Build Path` → `Order and Export`。
  2. 勾選 `Android Private Libraries`(或具體 jar 檔),使其導出。
  3. 或在 Library 專案的 `build.gradle` 中宣告:
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    // 若需讓主專案可見,改用 api (Gradle 3.0+)
    api fileTree(dir: 'libs', include: ['*.jar'])
}

驗證

主專案 `Build Path` → `Libraries` 應出現 `Android Private Libraries` 節點,展開可見 Library 專案的 jar。

最佳實踐

  • 共用程式碼建議發布為 AAR/Maven artifact,而非專案相依。
  • 若必須用 Module 依賴,確保 `api` 而非 `implementation` 以傳遞傳遞性依賴。

參考圖示

Order and Export 勾選示意

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved