2017-04-22 4 views
0

私はちょうど最新のAndroidスタジオとAndroid NDKをインストールしました。私のNDKのインストールのplatformsディレクトリを調べるとき、私は次のプラットフォームを見ることができます:Android NDKが特定のAPIレベルでミスアウトするのはなぜですか?

android-9 
android-12 
android-13 
android-14 
android-15 
android-16 
android-17 
android-18 
android-19 
android-21 
android-22 
android-23 
android-24 

あなたはAPIレベル10、11、20および25は、NDKに欠けていることがわかります。ではなぜですか?

アプリでAPIレベル11をターゲットにする場合はどうすればよいですか?その場合、ANDROID_PLATFORMとして何を定義すればよいですか?私は、次のことを試してみたし、それは私のNDKにはandroid-11ディレクトリが存在しないが動作しているようです:

externalNativeBuild { 
    cmake { 
     arguments '-DANDROID_PLATFORM=android-11', 
        '-DANDROID_TOOLCHAIN=clang' 
    } 
} 

これはAPIレベル11を対象とする正しい方法ですか?私の言うとおりNDKのインストールにはandroid-11ディレクトリがありません。

これにいくつかの光を当てることができます誰のためにありがとう!

答えて

3

質問の回答はNDK guideにあります。要するに、すべてのシステムアップグレードでpublic(安定した)ネイティブAPIの変更が行われるわけではないため、platformsの下に別のディレクトリはありません。たとえば、ネイティブライブラリをAPI 11(HONEYCOMB)と互換性を持たせるには、platforms/android-9を使用する必要があります。

一般的に、Androidスタジオ用のCMakeユーティリティは、このルールを認識しており、明示的に適用します。here

最新のNDK(r14)はAPI 9(GINGERBREAD)以下のプラットフォームでのサポートを中止しました。

更新bugはNDK R15にあります:それは正しく行方不明アンドロイド-25フォルダを扱いません。したがって、あなたのAndroidプロジェクトにminSdkVersion 25がある場合は、手動でAPP_PLATFORM = android-24(または'-DANDROID_PLATFORM = android-24' cmakeを使用する場合)を選択する必要があります。

0

android-ndkの男とのチャットから、api 25は存在しないことがわかりました。「バージョン24以降の新機能はありませんでした」のためです。

+0

api 25のために構築されたndk-14がありますが、安定版ではありませんが、いくつかのバグがあります。 – JavadKhan

関連する問題