簡體   English   中英

Android Studio 庫“錯誤:包不存在”

[英]Android Studio library “error: package does not exist”

我已經創建了 Android 庫作為 Android Studio 模塊。 添加為我的根模塊的依賴項。 在編碼時,我可以從庫包中導入任何類,但是當我嘗試運行應用程序時,我收到一個錯誤package some.mylibrary.project does not exist

build.gradle根模塊

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.+'
    }
}
apply plugin: 'com.android.application'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile 'com.android.support:appcompat-v7:20.+'
    compile 'com.google.android.gms:play-services:5.+'
    compile project(':libraries:mylibrary')
}

android {
    compileSdkVersion 17
    buildToolsVersion "20.0.0"

    lintOptions {
        disable 'InvalidPackage'
        checkReleaseBuilds false
        abortOnError false
    }

    ***
}

build.gradle庫模塊

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.+'
    }
}

apply plugin: 'com.android.application'
apply plugin: 'idea'

android {
    compileSdkVersion 17
    buildToolsVersion "20.0.0"

     *****    
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

設置.gradle

include ':libraries:mylibrary'

PS我不得不提到該項目是從Eclipse IDE導出的,因此項目結構與默認結構不同。

對於 Android Studio 2.2.2

是的,在庫模塊中,它不能使用模塊定義中的 apply plugin: com.android.application語句,是的,使用 apply plugin: com.android.library代替。 (仍在 lib 模塊中)

但是,您必須執行以下操作:

  1. 在 Gradle 文件中為兩個模塊公開相同的 SDK 版本。
  2. 右鍵單擊您的項目“app”模塊文件夾,然后單擊 -> 打開模塊設置
  3. 單擊“依賴項”選項卡
  4. 單擊 + 號添加新的依賴項並選擇“模塊依賴項”
  5. 查找您需要的庫並添加它。

此外,在命名您的 lib 模塊時,請避免使用大寫字母。

如果您有一個庫模塊,則它不能在模塊定義中使用apply plugin: 'com.android.application'語句,否則構建將無聲地失敗,如您所見。 使用apply plugin: 'com.android.library'代替。

已提交一個錯誤,要求構建系統在發生這種情況時大聲失敗而不是靜默失敗: https : //code.google.com/p/android/issues/detail?id=76725

上面的答案有些欠缺如果你在 Kotlin 中項目 java add 得到這個錯誤

  • 工具選項卡 Kotlin 和配置 Kotlin
  • (選擇 Android with Gradle)后選擇模塊

項目 build.gradle 添加

ext.kotlin_version = ‘1.3.21’
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

應用程序 build.gradle

apply plugin: 'kotlin-android-extensions'

apply plugin: 'kotlin-android'

科特林

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

參考: https ://medium.com/mindorks/enabling-kotlin-support-for-a-current-only-java-android-project-98c75e04384a

在 build-gradle 應用程序中,添加這一行:

implementation project(":your_name_library_here")

如果您在使用Kotlin 時遇到這個問題並且有

kotlin.incremental=true
kapt.incremental.apt=true

gradle.properties 中,那么您需要暫時刪除它以修復構建。

成功構建后,您可以再次添加這些屬性以加快使用 Kotlin 時的構建時間。

參考: https : //stackoverflow.com/a/58951797/3948854

當您更改包名稱並嘗試運行代碼時會發生此錯誤。 發生這種情況是因為 android studio 仍然具有舊名稱的包緩存。

此外,在您的代碼中交叉檢查所有導入以及導入的包,以便不存在不同的包名稱。 例如,此錯誤通常是指發生錯誤的位置附近的另一個導入文件。 檢查以前的進口附近。

要修復此錯誤,您可以嘗試從 android studio 的“文件”菜單中執行“無效緩存/重新啟動”選項。 選擇“無效並重新啟動選項”並關閉 Android Studio。

此錯誤的另一個原因是,當更改項目的路徑根文件夾或它所依賴的任何模塊時。 在這種特殊情況下,要修復此錯誤,您需要刪除受影響的模塊,然后重新添加它們。 接下來不要忘記從 android studio 的文件菜單中執行“無效緩存/重新啟動”選項。 選擇“無效並重新啟動選項”並關閉 Android Studio。

從 android studio 清理你的項目:

  • “構建 -> 清理項目”。 這將清除您的構建文件夾。
  • 從項目的根目錄中刪除 .gradle 目錄。 它包含一些 Gradle 緩存文件。
  • 也刪除 .idea 目錄(之前進行備份)。 它包含一些項目配置文件。

重啟安卓工作室。

最后

如果錯誤仍然存​​在,您需要將受影響的文件移動到項目根文件夾的外部目錄。 在 Android Studio 上,像以前一樣手動創建每個文件名,並從舊文件中復制其中的代碼。 這將堅決解決此錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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