web-dev-qa-db-ja.com

Android studios 2.3 NDKのバグを修正するには?

新しいアップデートまで問題がなかったので、バグだと思っています。この警告があるため、Gradleコンソールを使用してアプリをデバッグすることはできません-

「オンデマンド構成はインキュベーション機能です。NDKには「プラットフォーム」ディレクトリがありません。NDKを使用している場合は、ndk.dirが有効なNDKディレクトリに設定されていることを確認してください。 AppData\Local\Android\Sdk \ndk-bundle。NDKを使用していない場合は、Android_NDK_HOMEまたはlocal.propertiesからNDK変数の設定を解除して、この警告を削除してください。

私はNDKを使用していないと確信しており、この問題をどのように修正できるかわかりません

## 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ファイルが表示されません。

46
Ryder Thacker

この迷惑なメッセージを防ぐことができました。ここに私のために働いたものがあります。

バックグラウンド:

  1. 私はNDKをまったく使用しておらず、NDKをインストールしたことがありません。

  2. ただし、xsvedaによる別の回答で述べたように、これはここに記載されているGradleのバグです。

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

    そのため、「NDK-innocent」でさえ被害者になる可能性があります。

  3. 問題は、NDKをインストールしたことがない場合でも、Gradleが文字列「/ ndk-bundle」をSDKフォルダーの場所に追加するだけでNDKフォルダーの場所を計算していることです。

  4. 特定の場所にNDKフォルダーが存在するという誤った期待を確立した後、Gradleはビルドするたびに、そのフォルダーが「見つからない」という警告を出します。これは単なる警告であり、ビルドの完了を妨げるものではありませんが、迷惑です。

迷惑なメッセージを止める方法:

ディスクスペースは安価であり、私の時間は貴重なものなので、使用しないつもりであっても、NDKをインストールすることでこのバグをユーモアで説明しました。

これを行うには、次の場所に移動できます。

ファイル->プロジェクト構造-> SDKの場所

Android NDK locationフィールドを確認します。 NDKをインストールしていない場合、このフィールドは空になります。

その場合、そのフィールドの下にNDKをインストールするためのリンクがあります。そのリンクをクリックしてインストールします。数分かかります。

インストールが完了し、インストールの進行ダイアログを閉じると、NDKの場所がAndroid NDK locationフィールドに自動的に書き込まれます。これは次のようになります。

C:\ dev\astudiosdk\ndk-bundle

[OK]ボタンをクリックして、再度ビルドします。エラーが消えます。

期待されるフォルダをこのフィールドに入力するだけでよいことに注意してください。私はそれを試しませんでした。しかし、特に最終的にNDKを実際に使用することにした場合、それが他の問題を引き起こす可能性があるかどうかはわかりません。

26
Carl

Android NDK をインストールするだけです。

これでエラーと警告が修正されました!

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

  1. Tools -> Android -> SDK Managerに移動します
  2. SDK Toolsをクリックします
  3. チェックNDK
  4. 適用して終了します。
12
RagsB

多分Android St​​udio IDEからSDKを更新するといいかもしれません

手順は次のとおりです。

  1. Tools (top-menu item) > Android > SDK Managerに移動します
  2. [SDKツール]タブをクリックします
  3. NDKチェックボックスupdate-optionまでスクロールします

ここのスクリーンショット: Android NDKを適切に更新する方法?

10
Gene Bo

SDKのルートフォルダーから空のndk-bundleフォルダーを削除することにより、この問題を修正しました(理由と時期はわかりません)。

ndk-bundle folder in Android SDK folder

Androidバグトラッカーの問題 が役立つ理由を次に示します。

誰にとっても、プラグイン3.0.0-alpha1以降でこの問題が発生します。新しいバグを登録して、#33のallの質問に答えてみてください。問題をデバッグするにはより多くの情報が必要であり、クローズされたバグにコメントを追加することは、簡単に迷子になる方法です。

背景を少し説明するために、プラグインはNDKディレクトリが有効かどうかを確認します。ほとんどの場合、NDKを使用していません。自動的に{sdk}/ndk-bundleにあると想定します。 {sdk}/ndk-bundleが存在しない場合は無視されます。 「NDKに「プラットフォーム」ディレクトリがありません。」と表示される場合、{sdk}/ndk-bundleがありますが、{sdk}/ndk-bundle/platformsディレクトリはありません。これは、何らかの理由でNDKが破損していることを意味します。使用していない場合は、{sdk}/ndk-bundleを削除するだけで安全です。

8
Oleksandr

あなたはそれを試してみることができます:

Android studioには既にチェックボックスがあります。

Android Studio->環境設定->コンパイラ-> Gradle->コマンドラインオプション->オンデマンド設定

チェックを外してから、Gradleをもう一度同期します

enter image description here

7
Harshit Agrawal

Android SDKにスペースを含むディレクトリパスを使用しないでください。簡単な治療法として、手動で変更できます

sdk.dir=C:/Users/EMILYT~1/AppData/Local/Android/Sdk

NDKをインストールする必要はありません。

2
Alex Cohn

このタイプのエラーステートメントは次のとおりです。

  1. NDKには「プラットフォーム」ディレクトリがありません。
  2. Android St​​udioがndkの場所を要求しないようにAndroid_NDK_HOMEを設定する方法は?

ソリューション

build.gradleを開くと、次のような2つのgradleパスが表示されます:classpath 'com.Android.tools.build:gradle:2.3.0' classpath 'com.Android.tools.build:gradle:2.2.0'

これらのクラスパスの1つを削除し、1つのクラスパスのみを保持できます。

プロジェクトをきれいにするgradlew clean

これは私にとってはうまく機能しており、ndkパスまたはndk設定を設定する必要はありません。

Android Studio NDK 2.3バグ

1
Lalit Baghel

Android St​​udio SDKツールでNDKを更新すると、問題が解決しました。

1
amilab

APKのリリース中にプロジェクトをビルドできない場合

表示される警告は単なる警告です。面白いのは、ほとんどの場合、strings.xmlに必要な名前を付けずにいくつかの言語を残したということです。または、ローカライズされた文字列-.xmlの一部に、 " '"のような不要な文字があります。これは、たとえば "\ '」全体的に、アプリのリソースに関連している可能性があります。最初にそれらを再確認してください。

0
CodeToLife

私にとって、NDKエラーは誤った診断であることが判明しました。このエラーは、gradleがJava.io.UncheckedIOExceptionクラスでClassNotFound例外をスローしたときに発生しました。

クラスはJava 8で定義されていますが、インストールしたJDK 1.8.0u51(またはおそらく以前のバージョン)には含まれていませんでした。

JDKを更新して1.8.0u51バージョンを削除すると、問題が解決しました。

0
davenpcj