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

Android Library 模組誤勾選「Is Library」導致無法運行:項目屬性配置錯誤一分鐘修復

     編輯:程式設計綜合問答

錯誤現場

支付 Demo 引用官方 Library 項目,運行報錯:Default Activity not found / No main method,但代碼中明確存在 MainActivity / main 方法。

根因:Library 模組不可直接運行

在 Project Structure / Module Settings 中,**勾選了 "Library" 選項 (Is Library = true)**。這將模組標記為 **Android Library (AAR)**,而非 **Android Application (APK)**。

  • Library 模組: 編譯產出 .aar,供其他模組 implementation project(':lib') 引用,**無清單合併、無入口 Activity、不可安裝運行**。
  • Application 模組: 編譯產出 .apk,含 AndroidManifest.xml 完整配置,**可直接安裝調試**。

一鍵修復步驟

  1. 打開 File > Project Structure (或 Ctrl+Alt+Shift+S)。
  2. 選中左側報錯模組 (如 payment-demo)。
  3. 取消勾選 Properties 頁籤下的 "Library" / "Is Library"。
  4. 點擊 Apply > OK,Gradle 同步。
  5. 重新 Run 'app',問題解決。

正確的依賴關係圖


:app (Application)          :official-sdk (Library)
    |                            |
    |--- implementation project(':official-sdk')  <-- 正確引用方式
    |
    |---> 產出 APK (可運行)
:official-sdk 產出 AAR (被引用)

避坑指南

  • ❌ 將可運行 Demo 直接設為 Library 以便引用 —— **錯誤**。應創建獨立 Library 模組存放公共代碼,Demo 保持 Application。
  • ❌ 同時勾選 Library 並嘗試設置 manifest 入口 —— **無效**,Gradle 會忽略 Library 模組的 <activity> 入口屬性。
  • ✅ 多模組項目結構:core-lib (Library) + feature-a (Application) + feature-b (Application) + demo-app (Application)。

命令行驗證


./gradlew :app:assembleDebug   # 產出 app/build/outputs/apk/debug/app-debug.apk
./gradlew :official-sdk:build  # 產出 official-sdk/build/outputs/aar/official-sdk-release.aar

「Is Library」一個勾選,決定了模組的生命週期與產出物類型。**Demo 必須是 Application,公共代碼才是 Library** —— 這是 Gradle/Android 構建系統的鐵律。

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