web-dev-qa-db-ja.com

Android NDKエラー。プロジェクトをビルドできません

次の特定のエラーが発生します、

E:\SDK\ndk-bundle\build\core\setup-app-platform.mk

エラー:(115)*** Android NDK:Aborting。Stop。Error:Execution failed for task ':un7Zip:compileReleaseNdk'。

com.Android.ide.common.process.ProcessException:プロセスE:\ sdk\ndk-bundle\ndk-build.cmdを引数{NDK_PROJECT_PATH = null APP_BUILD_SCRIPT = E:\ appRizort\RizortCardboard\un7Zip\build\intermediatesで実行中にエラーが発生しました\ ndk\release\Android.mk APP_PLATFORM = Android-25 NDK_OUT = E:\ appRizort\RizortCardboard\un7Zip\build\intermediates\ndk\release\obj NDK_LIBS_OUT = E:\ appRizort\RizortCardboard\un7Zip\build\intermediates\ndk\release\lib APP_ABI = armeabi-v7a、armeabi、x86、arm64-v8a}

11
WanneBeNerd

NDK_PROJECT_PATHがnullです。プロジェクトフォルダーへのパスに空白が含まれていると、この問題が発生する可能性があります。

6
mike

APP_PLATFORMプロジェクトのネイティブ部分をNDKでビルドするときに指定することは非常に重要です。ストーリーは NDKガイドで詳しく説明されています

この変数には、サポートする最小バージョンAndroidプラットフォームバージョンが含まれています。たとえば、Android-15の値は、ライブラリが以下で利用できないAPIを使用することを指定しますAndroid 4.0.3(APIレベル15)で、より低いプラットフォームバージョンを実行しているデバイスでは使用できません。プラットフォーム名と対応するAndroidシステムイメージの完全なリストについては、=を参照してください。 Android NDK Native APIs

このフラグを直接変更するのではなく、minSdkVersionプロパティを モジュールレベルのbuild.gradleファイルdefaultConfigまたはproductFlavorsブロックに設定する必要があります。これにより、適切なバージョンのAndroidを実行しているデバイスにインストールされているアプリのみがライブラリを使用できるようになります。 ndk-buildツールチェーンは、次のロジックを使用して、ビルドするABIおよび指定するminSdkVersionに基づいて、ライブラリの最小プラットフォームバージョンを選択します。

  1. minSdkVersionに等しいABIのプラットフォームバージョンが存在する場合、ndk-buildはそのバージョンを使用します。
  2. それ以外の場合、ABIのminSdkVersionより前のプラットフォームバージョンが存在する場合、ndk-buildはそれらのプラットフォームバージョンの最高のものを使用します。プラットフォームのバージョンがない場合、通常、以前の利用可能なバージョン以降、ネイティブプラットフォームAPIに変更がなかったことを意味するため、これは妥当な選択です。
  3. それ以外の場合、ndk-buildはminSdkVersionよりも高い次の利用可能なプラットフォームバージョンを使用します。

NDKには個別のAndroid-25プラットフォームはありません。サポートされている最小プラットフォームがOの場合は、Android-24または(r15ベータ版の場合)Android-26を選択できます。minSdkVersionが少ない場合、またはNDKのプラットフォームが低い場合、NDKプラットフォームは上位互換性があるためです。

3
Alex Cohn