新しいアップデートまで問題がなかったので、バグだと思っています。この警告があるため、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ファイルが表示されません。
この迷惑なメッセージを防ぐことができました。ここに私のために働いたものがあります。
バックグラウンド:
私はNDKをまったく使用しておらず、NDKをインストールしたことがありません。
ただし、xsvedaによる別の回答で述べたように、これはここに記載されているGradleのバグです。
https://code.google.com/p/Android/issues/detail?id=228424
そのため、「NDK-innocent」でさえ被害者になる可能性があります。
問題は、NDKをインストールしたことがない場合でも、Gradleが文字列「/ ndk-bundle」をSDKフォルダーの場所に追加するだけでNDKフォルダーの場所を計算していることです。
特定の場所にNDKフォルダーが存在するという誤った期待を確立した後、Gradleはビルドするたびに、そのフォルダーが「見つからない」という警告を出します。これは単なる警告であり、ビルドの完了を妨げるものではありませんが、迷惑です。
迷惑なメッセージを止める方法:
ディスクスペースは安価であり、私の時間は貴重なものなので、使用しないつもりであっても、NDKをインストールすることでこのバグをユーモアで説明しました。
これを行うには、次の場所に移動できます。
ファイル->プロジェクト構造-> SDKの場所
Android NDK locationフィールドを確認します。 NDKをインストールしていない場合、このフィールドは空になります。
その場合、そのフィールドの下にNDKをインストールするためのリンクがあります。そのリンクをクリックしてインストールします。数分かかります。
インストールが完了し、インストールの進行ダイアログを閉じると、NDKの場所がAndroid NDK locationフィールドに自動的に書き込まれます。これは次のようになります。
C:\ dev\astudiosdk\ndk-bundle
[OK]ボタンをクリックして、再度ビルドします。エラーが消えます。
期待されるフォルダをこのフィールドに入力するだけでよいことに注意してください。私はそれを試しませんでした。しかし、特に最終的にNDKを実際に使用することにした場合、それが他の問題を引き起こす可能性があるかどうかはわかりません。
Android NDK をインストールするだけです。
これでエラーと警告が修正されました!
ools -> Android -> SDK Manager
に移動しますSDK Tools
をクリックしますNDK
多分Android Studio IDEからSDKを更新するといいかもしれません
手順は次のとおりです。
Tools (top-menu item) > Android > SDK Manager
に移動しますここのスクリーンショット: Android NDKを適切に更新する方法?
SDKのルートフォルダーから空のndk-bundle
フォルダーを削除することにより、この問題を修正しました(理由と時期はわかりません)。
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を削除するだけで安全です。
Android SDKにスペースを含むディレクトリパスを使用しないでください。簡単な治療法として、手動で変更できます
sdk.dir=C:/Users/EMILYT~1/AppData/Local/Android/Sdk
NDKをインストールする必要はありません。
このタイプのエラーステートメントは次のとおりです。
ソリューション:
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 SDKツールでNDKを更新すると、問題が解決しました。
APKのリリース中にプロジェクトをビルドできない場合
表示される警告は単なる警告です。面白いのは、ほとんどの場合、strings.xmlに必要な名前を付けずにいくつかの言語を残したということです。または、ローカライズされた文字列-.xmlの一部に、 " '"のような不要な文字があります。これは、たとえば "\ '」全体的に、アプリのリソースに関連している可能性があります。最初にそれらを再確認してください。
私にとって、NDKエラーは誤った診断であることが判明しました。このエラーは、gradleがJava.io.UncheckedIOException
クラスでClassNotFound
例外をスローしたときに発生しました。
クラスはJava 8で定義されていますが、インストールしたJDK 1.8.0u51(またはおそらく以前のバージョン)には含まれていませんでした。
JDKを更新して1.8.0u51バージョンを削除すると、問題が解決しました。