2017-08-15 18 views
3

私はNDKビルド(NDKバージョン15)を使用してのCPPを建てたとき、私は長年のAndroid NDKを使用していた、しかし、最近、私は下のメッセージを見たのAndroid NDKサポートバージョン限定

のAndroid NDK:アンドロイド-9サポートされていません。最低サポートバージョン android-14を使用しています。 AndroidのNDK:WARNING:APP_PLATFORMアンドロイド-14がアンドロイドより 高いです:minSdkVersionが9

はなぜNDKは、Android-14より低いアンドロイドレベル(3-13)のサポートを停止しますか?

私はまだNDKのガイドでhttps://developer.android.com/ndk/guides/stable_apis.htmlを見つけようとしましたが、私はまだ考えていません。 NDKはまだレベル3以上をサポートしているようです。

私は、C++で必要なフラグや機能の1つがこれを引き起こすかもしれないと推測しました。しかし、私は今までのところ何の手がかりも見つけられませんでした。

LOCAL_CPP_FEATURES := rtti exceptions 
APP_CPPFLAGS += -std=c++11 
APP_STL := gnustl_static 

+0

ジンジャーブレッドにはアクティブデバイスがほとんどなく、ジンジャーブレッドをサポートするということは、libandroid_supportのようなものには、より多くのAPKを含める必要があるということです。あなたが実際にジンジャーブレッドをサポートし続けることを望んでいるなら、AlexとMM Sはどちらもこれをどう扱うべきかについて良いアドバイスをしてくれます。 –

答えて

0

アプリはNDK改訂履歴(https://developer.android.com/ndk/downloads/revision_history.html)によるとアンドロイド-9

上で実行する必要がある場合にはアンドロイド2.3

、NDKのバージョン15を更新しない(アンドロイド-9)はサポートされなくなりました。 NDKの最小APIレベル はAndroid 4.0(android-9)になりました。 APP_PLATFORMがandroid-14より低く設定されている場合は、代わりにandroid-14が使用されます。

1

あなたの質問はなぜNDKチームに宛ててください。 public mail listで質問したり、GitHubで苦情を申し立てることができます。

とにかく、今のところ、古いデバイスのサポートを停止することです。次のリリースのNDKでプラットフォーム要件をさらに削減する予定です。

興味深い質問は、これについて何をすべきかです。 android-9について気になる方は、android-26よりもずっと古いバージョンのNDKを使用してください。それは仕事を止めるだけではありません。有効期限はありません。

通常、Androidは下位互換性を維持しています。アプリがプラットフォーム-Xのために構築されていれば、プラットフォーム(X + n)で実行されます(おそらくは互換モード)。

一方、NDKの新しいリリースでは、セキュリティ修正を含む重要なバグ修正が行われています。新しいデバイス(プラットフォーム 'O'など)では、古いNDKでコンパイルされたバイナリを実行する際に問題が発生する可能性があります。そして、間違いなく、古いNDKでは、高度なプラットフォームでしか利用できない新しい機能にアクセスすることはできません。

したがって、ターゲットSDK = 9の2つの異なるAPKと、最小SDK = 21(番号は異なる場合があります)の2つのAPKをアップロードすることは価値があります。 Playストアでは、さまざまなプラットフォーム(およびABI)用に別々のAPKを管理できます。バージョンコードポリシーに注意するだけで、ユーザーはEclairに悩まされているユーザーとNougatにアップグレードしたユーザーのアップデートを適時に受け取ることができます。