2016-05-22 4 views
14

Androidスタジオ2.2プレビュー1には新しい外部ndkビルド機能がありますが、app/build.gradleスニペットは公式ブログ記事に表示されていますが、追加のndk Application.mkファイルは通常、私はexternalNativeBuild経由Android.mk NDKのビルドファイルを設定することができるよenter image description hereNDK-BuildをAndroid Studio 2.2で正しく使用する方法1

が含まれているパラメータを構築し、私は必要なApplication.mk変数を設定することができますか?

Application.mkは含まれています。更新のGradleプラグインと

NDK_TOOLCHAIN_VERSION := clang 
APP_PLATFORM := android-16 
APP_ABI := armeabi 
APP_STL := c++_static 
APP_CPPFLAGS += -std=c++11 
+3

明らかに[これはできません](https://code.google.com/p/android/issues/detail?id=210537) – Michael

+0

を一時的に妥協すると、$(NDK_ROOT)/ ndk-buildを変更してApplication.mkにパスを渡すことができます –

答えて

7

のAndroid Studioの2.2のプレビュー3は、追加の引数のサポートを追加しました。あなたはこのようApplication.mkと、追加の構成を設定することができます。

defaultConfig { 
    ndkBuild { 
    arguments "NDK_APPLICATION_MK:=Application.mk" 
    cFlags "-DTEST_C_FLAG1" "-DTEST_C_FLAG2" 
    cppFlags "-DTEST_CPP_FLAG2" "-DTEST_CPP_FLAG2" 
    abiFilters "armeabi-v7a", "armeabi" 
    } 
} 

可能であれば、私は理由のAndroid StudioでよりよいC++コードエディタとデバッグの統合、システムを構築CMakeのへの移行をお勧めします。ここでは、gradleプラグインの設定に関する詳細については、 https://sites.google.com/a/android.com/tools/tech-docs/external-c-buildsをご覧ください。あなたはexternalNativeBuildグループの下cmakendkBuildグループをラップする必要がありますAndroidのメーカー2.2のプレビュー5から :

編集

defaultConfig { 
    externalNativeBuild { 
    ndkBuild { 
     targets "target1", "target2" 
     arguments "NDK_APPLICATION_MK:=Application.mk" 
     cFlags "-DTEST_C_FLAG1", "-DTEST_C_FLAG2" 
     cppFlags "-DTEST_CPP_FLAG2", "-DTEST_CPP_FLAG2" 
     abiFilters "armeabi-v7a", "armeabi" 
    } 
    } 
} 

編集2:ndkBuildexternalNativeBuildの下でグループを包装するために動作しないようですビルドツールのバグを修正しました。

+2

これはプレビューに存在していたかもしれませんが、2.2.0または2.2.1には存在しませんプラグイン。 –

+0

@Cameron Lowell Palmerそれが存在するならば、externalNativeBuildグループにndkbuildグループをラップするだけです。私の答えの編集を参照してください。 – Tadas

+0

@ Tadas実際に2.2.0または2.2.1のリリースでテストしましたか? –

0

add-native-code

android { 
    ... 
    defaultConfig {...} 
    buildTypes {...} 

    // Encapsulates your external native build configurations. 
    externalNativeBuild { 

    // Encapsulates your CMake build configurations. 
    cmake { 

     // Provides a relative path to your CMake build script. 
     path "CMakeLists.txt" 
    } 
    } 
} 

:あなたの代わりにcmakeの{}のブロック} {ndkBuildを使用し、既存のNDKビルドプロジェクトへのGradleをリンク、およびへの相対パスを提供する場合あなたのAndroid.mkファイル。 Android.mkファイルと同じディレクトリにある場合、GradleにはApplication.mkファイルも含まれています。

関連する問題