Androidプロジェクトには一部のネイティブライブラリが含まれており、私たちはarbeabi-v7
のみをサポートしています。したがって、生成apkにはこのアーキテクチャ用のネイティブライブラリのみが含まれています。 RenderScript
を追加するRenderScriptにはすべてのプラットフォーム用のネイティブバイナリが含まれています
最近、我々はx86
すなわち、すべてのサポートされているプラットフォーム用のlibrsjni.so
とlibRSSuport.so
ネイティブを含むように生成されたAPKを引き起こすRenderScript
を追加し、arbeabi-v7
など
build.gradle
ファイルの変更は以下のとおりです。
defaultConfig {
// Other configs
renderscriptTargetApi 18
renderscriptSupportModeEnabled true
}
生成されたapk libsフォルダは次のようになります。
libs
- armeabi-v7
- librsjni.so
- libRSSuport.so
- Other native libs
- x86
- librsjni.so
- libRSSuport.so
- Other archs
- librsjni.so
- libRSSuport.so
実行時に非armeabi-v7
アーキテクチャがサポートされていると思われる可能性があり、それを実行しようとするとアプリがクラッシュするため、プライマリabiがarmeabi-v7
ではない電話機で問題が発生します。
我々はbuild.gradle
に以下を追加している今のところ:
ndk {
abiFilters "armeabi-v7a"
}
とgradle.properties
で:
android.useDeprecatedNdk=true
この問題を解決するが、それがないけどハックまたは非標準液のように思えます。
この問題を解決する標準または推奨の方法はありますか?
私見を** abiFilters **あなたの問題のための完璧な標準ソリューションです。 –
@AlexCohn返事をありがとう。私が心配しているのは 'android.useDeprecatedNdk'の使用です。 「non depricated ndk」のライブラリを除外する方法はありますか? – Abdullah