簡體   English   中英

如何修復 android studios 2.3 NDK 錯誤?

[英]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 文件。

我能夠阻止這條煩人的消息; 這對我有用。

背景:

  1. 我根本沒有使用 NDK,也從未安裝過 NDK。

  2. 但是,正如 xsveda 在此處的另一個答案中所述,這是此處記錄的 Gradle 錯誤:

    https://code.google.com/p/android/issues/detail?id=228424

    因此,即使是“NDK 無辜者”也可能成為其受害者。

  3. 問題是 Gradle 只是通過將字符串“/ndk-bundle”附加到 SDK 文件夾位置來計算 NDK 文件夾的位置,即使您從未安裝過 NDK。

  4. 在建立對存在於特定位置的 NDK 文件夾的這種錯誤期望之后,每次構建時,Gradle 都會警告您“丟失”了該文件夾。 這只是一個警告,不會阻止您的構建完成,但很煩人。

我如何停止煩人的消息:

由於磁盤空間很便宜,而且我的時間對我來說很寶貴,我通過安裝 NDK 解決了這個錯誤,即使我不打算使用它。

為此,您可以訪問:

文件 -> 項目結構 -> SDK 位置

並查看 Android NDK 位置字段。 如果您尚未安裝 NDK,則此字段將為空。

在這種情況下,該字段下方將是用於安裝 NDK 的鏈接。 單擊該鏈接並安裝它。 這需要幾分鍾。

安裝完成並關閉安裝進度對話框后,NDK 的位置將自動寫入 Android NDK 位置字段。 這將類似於:

C:\\dev\\astudiosdk\\ndk-bundle

單擊確定按鈕並再次構建。 錯誤消失。

請注意,您可能只需在此字段中鍵入所需的文件夾; 我沒有嘗試。 但我不知道這是否會導致一些其他問題,尤其是如果您最終決定實際使用 NDK。

只需安裝Android NDK

這修復了我的錯誤和警告!

https://i.stack.imgur.com/Lsu8E.png

  1. 轉到ools -> Android -> SDK Manager
  2. 單擊SDK Tools
  3. 檢查NDK
  4. 申請並退出。

聽起來從 Android Studio IDE 更新 SDK 可能會有所幫助

步驟是:

  1. 轉到Tools (top-menu item) > Android > SDK Manager
  2. 單擊 SDK 工具選項卡
  3. 向下滾動到NDK復選框更新選項

此處的屏幕截圖: 如何就地更新 Android NDK?

通過從 SDK 根文件夾中刪除一個空的ndk-bundle文件夾來修復此問題(不知道它出現的原因和時間):

android 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,則刪除它是安全的。

你可以試一試:

android studio 中已經有一個復選框。

Android Studio -> 首選項 -> 編譯器 -> Gradle -> 命令行選項 -> 按需配置

取消選中它然后再次同步gradle

在此處輸入圖片說明

我遇到了這個問題:

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
  • 檢查 NDK。
  • 申請並確定。

搖籃版本: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。

這種類型的錯誤語句是:-

  1. NDK 缺少“平台”目錄。
  2. 如何設置 ANDROID_NDK_HOME 以便 Android Studio 不要求 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 NDK 2.3 BUG

在 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 放在那里。

  1. 繼續並在您的 SDK 目錄下創建platforms文件夾。 就我而言,它位於: C:\\Users\\K\\AppData\\Local\\Android\\Sdk\\ndk-bundle\\platforms
  2. 然后從這里下載適用於您的操作系統的 NDK: https : //developer.android.com/ndk/downloads 就我而言,它是 Windows,因此該文件應命名為: android-ndk-r21e-windows-x86_64.zip
  3. 將 NDK 粘貼並解壓到platforms文件夾中在此處輸入圖片說明
  4. 同步梯度。

即使您有類路徑 '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.

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