[英]How to fix android studios 2.3 NDK bug?
我假設這是一個錯誤,因為在新更新之前我沒有任何問題。 所以我不能使用 gradle 控制台來調試我的應用程序,因為我有這個警告 -
“按需配置是一個孵化功能。NDK 缺少“平台”目錄。如果您使用 NDK,請驗證 ndk.dir 設置為有效的 NDK 目錄。當前設置為 C:\\Users\\Emily Thacker\\ AppData\\Local\\Android\\Sdk\\ndk-bundle。如果您沒有使用 NDK,請從 ANDROID_NDK_HOME 或 local.properties 中取消設置 NDK 變量以消除此警告。”
我很確定我沒有使用 NDK,我不知道如何解決這個問題,這是我的 local.properties
## This file is automatically generated by Android Studio.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file should *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.
#
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
sdk.dir=C\:\\Users\\Emily Thacker\\AppData\\Local\\Android\\Sdk
此外,我在我的目錄中沒有看到 ANDROID_NDK_HOME 文件。
我能夠阻止這條煩人的消息; 這對我有用。
背景:
我根本沒有使用 NDK,也從未安裝過 NDK。
但是,正如 xsveda 在此處的另一個答案中所述,這是此處記錄的 Gradle 錯誤:
https://code.google.com/p/android/issues/detail?id=228424
因此,即使是“NDK 無辜者”也可能成為其受害者。
問題是 Gradle 只是通過將字符串“/ndk-bundle”附加到 SDK 文件夾位置來計算 NDK 文件夾的位置,即使您從未安裝過 NDK。
在建立對存在於特定位置的 NDK 文件夾的這種錯誤期望之后,每次構建時,Gradle 都會警告您“丟失”了該文件夾。 這只是一個警告,不會阻止您的構建完成,但很煩人。
我如何停止煩人的消息:
由於磁盤空間很便宜,而且我的時間對我來說很寶貴,我通過安裝 NDK 解決了這個錯誤,即使我不打算使用它。
為此,您可以訪問:
文件 -> 項目結構 -> SDK 位置
並查看 Android NDK 位置字段。 如果您尚未安裝 NDK,則此字段將為空。
在這種情況下,該字段下方將是用於安裝 NDK 的鏈接。 單擊該鏈接並安裝它。 這需要幾分鍾。
安裝完成並關閉安裝進度對話框后,NDK 的位置將自動寫入 Android NDK 位置字段。 這將類似於:
C:\\dev\\astudiosdk\\ndk-bundle
單擊確定按鈕並再次構建。 錯誤消失。
請注意,您可能只需在此字段中鍵入所需的文件夾; 我沒有嘗試。 但我不知道這是否會導致一些其他問題,尤其是如果您最終決定實際使用 NDK。
聽起來從 Android Studio IDE 更新 SDK 可能會有所幫助
步驟是:
Tools (top-menu item) > Android > SDK Manager
此處的屏幕截圖: 如何就地更新 Android NDK?
通過從 SDK 根文件夾中刪除一個空的ndk-bundle
文件夾來修復此問題(不知道它出現的原因和時間):
這是為什么它有助於解決 Android 錯誤跟蹤器上的問題的解釋:
對於仍然在插件 3.0.0-alpha1 或更高版本上遇到此問題的任何人。 請提交一個新的錯誤並嘗試回答 #33 中的所有問題。 我們需要更多信息來調試問題,向已關閉的錯誤添加注釋是一種容易讓它迷失的方法。
為了提供一些背景知識,該插件會檢查 NDK 目錄是否有效。 很可能,您沒有使用 NDK。 我們自動假設它在 {sdk}/ndk-bundle 中。 如果 {sdk}/ndk-bundle 不存在,它將被忽略。 如果您看到“NDK 缺少“平台”目錄。”,這意味着存在 {sdk}/ndk-bundle,但沒有 {sdk}/ndk-bundle/platforms 目錄。 這意味着由於某種原因,您的 NDK 已損壞。 如果您不使用 {sdk}/ndk-bundle,則刪除它是安全的。
我遇到了這個問題:
NDK is missing a "platforms" directory.
If you are using NDK, verify the ndk.dir is set to a valid NDK directory. It is currently set to /Users/<user_name>/Library/Android/sdk/ndk-bundle.
我通過在ndk-bundle
文件夾中創建一個空的platforms
文件夾來解決它。 像: path/to/your/Android/sdk/ndk-bundle/platforms
。
如果您沒有 ndk-bundle 文件夾。 按照以下步驟安裝 NDK (安裝 NDK 截圖):
Preferences
Android SDK
。SDK Tools
。搖籃版本:6.3
Android Studio 版本:Android Studio 4.1.1 Build #AI-201.8743.12.41.6953283,2020年11月5日構建
PS:我從以下位置手動安裝了 gradle: https ://docs.gradle.org/current/userguide/installation.html
您不應為 Android SDK 使用帶空格的目錄路徑。 作為一種簡單的治療方法,您可以手動更改
sdk.dir=C:/Users/EMILYT~1/AppData/Local/Android/Sdk
您不需要安裝 NDK。
這種類型的錯誤語句是:-
解決方案:
打開你的build.gradle
,在這里你會看到兩個 gradle 路徑,如: classpath 'com.android.tools.build:gradle:2.3.0' classpath 'com.android.tools.build:gradle:2.2.0'
您可以刪除這些類路徑之一並僅保留一個類路徑。
清理項目gradlew clean
這對我有用,從不需要設置 ndk 路徑或 ndk 設置。
在 Android Studio SDK 工具中更新 NDK 解決了我的問題。
對我來說,NDK 錯誤原來是一個錯誤的診斷。 當 gradle 在java.io.UncheckedIOException
類上拋出ClassNotFound
異常時發生此錯誤。
盡管該類是在 Java 8 中定義的,但它並未包含在我安裝的 JDK 1.8.0u51(或者可能是更早的版本)中。
更新 JDK 並刪除 1.8.0u51 版本解決了該問題。
如果您在發布 APK 時無法構建您的項目
您看到的警告只是一個警告。 有趣的是,您很可能留下了一些沒有必需名稱的語言 strings.xml。 或者一些本地化的 strings-.xml 有不需要的字符,比如“ ' ”,應該用例如“ \\' ”來代替。 總體而言,它可能與您的應用程序資源相關。 首先仔細檢查它們。
轉到 Gradle Scripts 然后轉到 local.properties 並正確設置 SDK 和 NDK 位置,在我的情況下設置是:
ndk.dir=F:\\AndroidSDK\\ndk-bundle sdk.dir=F:\\AndroidSDK
我不知道這是否會幫助任何人,但我遇到了同樣的錯誤,但沒有任何效果。 我去 ndk 文件夾創建了一個空的平台目錄,它工作正常。
就我而言,我發現我的項目沒有使用 NDK-bundle SDK。 所以,我主要是刪除了ndk-bundle
path/to/your/Android/sdk/
我得到了解決方案。
就我而言,我不得不將 NDK 從 22.1.7171670 降級到 21.4.7075529。 我從這個鏈接學到了這個決議
如果確實需要在項目中使用 NDK,則需要創建platforms
文件夾並將 NDK 放在那里。
platforms
文件夾。 就我而言,它位於: C:\\Users\\K\\AppData\\Local\\Android\\Sdk\\ndk-bundle\\platforms
android-ndk-r21e-windows-x86_64.zip
platforms
文件夾中即使您有類路徑 'com.android.tools.build:gradle:3.2.1' ,此錯誤仍然存在,我的意思是 3+,因此將其更改為最新版本並更改為 distributionUrl=https://services.gradle。 org/distributions/gradle-5.6.4-all.zip 到 distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-bin.zip 這個或最新的,如果問題仍然存在。
移除 Andorid_NDK_HOME 表單環境變量
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.