[英]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 每次我在導入語句中調用支持庫。
我試過了
不完全確定還需要做什么。
好的,所以我遇到了同樣的問題,並在 udacity 論壇中找到了解決方案:
在 Android Studio 中:
@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 開發者網站上的 這個鏈接有一些關於如何做到這一點的信息。
嘗試從網站執行以下步驟:
根據支持庫代碼創建庫項目:
創建一個庫項目並確保所需的 JAR 文件包含在項目的構建路徑中:
您現在擁有一個用於所選支持庫的庫項目,您可以將其與一個或多個應用程序項目一起使用。
刪除
/.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.