簡體   English   中英

包 android.support.v4.app 不存在; 在安卓工作室 0.8

[英]package android.support.v4.app does not exist ; in Android studio 0.8

我最近將 android studio IDE 更新到 0.8 以使用新的 android L SDK。 首先,我導入了一個完成的 android 項目,該項目在舊版本的 android studio 中沒有收到任何錯誤。 在 0.8 版 i 行中,例如

import android.support.v4.app.Fragment;
獲取:無法解決支持,導致其余代碼出現錯誤。 logcat 返回 101 個實例

Error:(8, 30) error: package android.support.v4.app does not exist

1 每次我在導入語句中調用支持庫。

我試過了

  • 重新安裝IDE
  • 刪除idea文件夾的內容
  • 重新安裝所有 SDK - 包括支持庫
  • 同步 gradle
  • 手動將支持庫復制到 libs 文件夾中
  • 重建項目
  • 以及創建一個新項目來測試庫

不完全確定還需要做什么。

好的,所以我遇到了同樣的問題,並在 udacity 論壇中找到了解決方案:

在 Android Studio 中:

  1. 右鍵單擊您的項目“app”文件夾,然后單擊 -> 模塊設置
  2. 單擊“依賴項”選項卡
  3. 點擊+號添加一個新的依賴並選擇“Library Dependency”
  4. 查找您需要的庫並添加它

@boernard 的答案從 Android Studio IDE 解決了這個問題,但如果您想了解幕后發生的事情,這是一個簡單的 gradle 構建文件更新:

您可以在 IDE 中編輯 build.gradle 文件(左窗格: Gradle Scripts -> build.gradle (Module: app) )或使用原始路徑( <proj_dir>/app/build.gradle )並添加/更新以下依賴部分:

dependencies {
    //
    // IDE setting pulls in the specific version of v4 support you have installed:
    //
    //compile 'com.android.support:support-v4:21.0.3'

    //
    // generic directive pulls in any available version of v4 support:
    //
    compile 'com.android.support:support-v4:+'
}

使用上述通用編譯指令,您可以將代碼發送給任何人,前提是他們安裝了某種級別的Android Support Libraries v4

以上解決方案都不適合我。 最終奏效的是:

代替

import android.support.v4.content.FileProvider;

用這個

import androidx.core.content.FileProvider;

此路徑從 AndroidX(重新打包的 Android 支持庫)開始更新。

[由於某些原因,這個答案與 Eclipse 有關,而不是 Android Studio!]

您是否嘗試過將支持庫設置為您的類路徑? Android 開發者網站上的 這個鏈接有一些關於如何做到這一點的信息。

嘗試從網站執行以下步驟:

根據支持庫代碼創建庫項目:

  • 確保您已使用 SDK 管理器下載了 Android 支持庫。
  • 創建一個庫項目並確保所需的 JAR 文件包含在項目的構建路徑中:

    • 選擇文件 > 導入
    • 選擇Existing Android Code Into Workspace並單擊 Next。
    • 瀏覽至 SDK 安裝目錄,然后瀏覽至 Support Library 文件夾。 例如,如果您要添加appcompat項目,請瀏覽到 /extras/android/support/v7/appcompat/。
    • 單擊完成以導入項目。 對於 v7 appcompat 項目,您現在應該會看到一個名為android-support-v7-appcompat的新項目。
    • 在新的庫項目中,展開libs/文件夾,右鍵單擊每個 .jar 文件並選擇Build Path > Add to Build Path 例如,在創建 v7 appcompat 項目時,將 android-support-v4.jar 和 android-support-v7-appcompat.jar 文件都添加到構建路徑中。
    • 右鍵單擊庫項目文件夾並選擇Build Path > Configure Build Path
    • Order and Export選項卡中,檢查您剛剛添加到構建路徑的 .jar 文件,以便它們可用於依賴此庫項目的項目。 例如,appcompat 項目要求您同時導出 android-support-v4.jar 和 android-support-v7-appcompat.jar 文件。
    • 取消選中Android 依賴項
    • 單擊確定以完成更改。
  • 您現在擁有一個用於所選支持庫的庫項目,您可以將其與一個或多個應用程序項目一起使用。

    • 將庫添加到您的應用程序項目中:
    • Project Explorer中,右鍵單擊您的項目並選擇Properties
    • 在對話框左側的類別面板中,選擇Android
    • 窗格中,單擊添加按鈕。
    • 選擇庫項目並單擊確定。 例如,appcompat 項目應列為 android-support-v7-appcompat。
    • 在屬性窗口中,單擊確定。

刪除

/.idea/libraries

然后同步 gradle 來構建項目。

// 運行這個命令 - 它修復了一切

離子cordova插件添加cordova-plugin-androidx-adapter

tl;dr從您的settings.gradle中刪除所有依賴於支持庫的未使用模塊。

長版:

在我們的例子中,我們在一個由每個模塊導入的common.gradle文件中將支持庫聲明為我們所有模塊(一個應用程序模塊和多個庫模塊)的依賴項。 但是,有一個庫模塊未聲明為任何其他模塊的依賴項,因此未構建。 在每幾次同步中,Android Studio 都會選擇那個確切的模塊作為尋找支持庫的地方(這就是為什么它對我們來說似乎是隨機發生的)。 由於該模塊從未使用過,因此它從未構建,這反過來又導致 jar 文件不在模塊的中間文件夾中。

settings.gradle刪除這個庫模塊並再次同步為我們解決了這個問題。

在我的情況下,錯誤出現在我的項目的一個模塊上。我已經通過添加解決了這個問題

dependencies {
    implementation 'com.android.support:support-v4:20.0.+'
}

對應模塊的 gradle 中的這種依賴關系

在 ECLIPSE LUNA 中,我通過在我的項目中使用 contet 菜單解決了這個問題:ANdroid Tools > Add support Library ...

在我的情況下,通過將字符串cordova.system.library.2=com.android.support:support-v4:+附加到platforms/android/project.properties文件來解決問題

對我來說,問題是由 Gradle 腳本列表中的 gradle.properties 文件引起的。 它顯示為 gradle.properties(全局)並引用 C:\users\.gradle\gradle.properties 中的文件。 我右鍵單擊它並從菜單中選擇刪除以將其刪除。 它從硬盤上刪除了文件,我的項目現在構建並運行。 我猜全局文件正在覆蓋用於定位包 android.support 的東西

我的解決方案是創建一個checked Use legacy support library選項的項目。 項目創建成功后,只需要delete app目錄下的src文件夾,從你的主項目中copy src文件夾即可。 最后,將項目與 Gradle 文件Sync

將此添加到 build.gradle:

allprojects {
    repositories {
        google()
    }
}
dependencies {
    implementation "com.android.support:support-core-utils:28.0.0"
}

*必須具有 minSdkVersion 14(或更高版本)

如果這些解決方案都不起作用,您需要將您的項目jetify 以完全支持AndroidX。 嘗試

npm i -D jetifier

然后運行

npx jetify

您可以在此處找到更多詳細信息: https ://github.com/michalchudziak/react-native-geolocation/issues/39#issuecomment-514566895,這應該可以解決問題。 讓我知道這是否有效。

並確保在 gradle.properties 中添加以下內容

android.useAndroidX=true

android.enableJetifier=true

暫無
暫無

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

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