現在、SDKを構築しており、SDKのユーザーに.aarアーカイブを提供しています。RenderScript:aarに.soを提供しない
私は基本的にイメージをぼかす私のSDKのオプションの機能を持っています。 しかし、この機能では、共有ライブラリがあるために.aarアーカイブを大きくするためにrenderScriptを使用する必要があります。
./jni/armeabi-v7a:
total 3752
rw-rr- 1 cylix wheel 1,1M 29 nov 16:16 libblasV8.so
rw-rr- 1 cylix wheel 746K 29 nov 16:16 libRSSupport.so
rw-rr- 1 cylix wheel 46K 29 nov 16:16 librsjni.so
./jni/mips:
total 5224
rw-rr- 1 cylix wheel 1,5M 29 nov 16:16 libblasV8.so
rw-rr- 1 cylix wheel 1,0M 29 nov 16:16 libRSSupport.so
rw-rr- 1 cylix wheel 70K 29 nov 16:16 librsjni.so
./jni/x86:
total 5344
rw-rr- 1 cylix wheel 1,6M 29 nov 16:16 libblasV8.so
rw-rr- 1 cylix wheel 958K 29 nov 16:16 libRSSupport.so
rw-rr- 1 cylix wheel 54K 29 nov 16:16 librsjni.so
./jni/arm64-v8a:
total 1808
rw-rr- 1 cylix wheel 843K 29 nov 16:16 libRSSupport.so
rw-rr- 1 cylix wheel 60K 29 nov 16:16 librsjni.so
しかし、私は、私はライブラリを削除し、.aarでそれらを提供しない場合は、ライブラリのクライアントはまだその側でのrenderScriptを有効にし、問題なく機能にアクセスできることに気づきました。 renderScriptが利用可能な場合
その後、私はちょうど私のコードをチェックインする必要があります。
try {
Class.forName("android.support.v8.renderscript.RenderScript");
} catch (ClassNotFoundException e) {
//! renderScript not available
}
しかし、ここでは私の問題です。私はまだ私のGradleファイルに置く必要がある :
renderscriptTargetApi 23
renderscriptSupportModeEnabled true
そうでない場合、プロジェクトはコンパイルできません。 しかし、これにより上記の.soファイルが自動的にインクルードされます。
これに対処する方法はありますか。レンダリング機能をコンパイルできますが、.soファイルをフィルタリングして.aarアーカイブ?
サポートライブラリフォールバックを必要としないデバイスでテストしているため、これは機能します。しかしこれは良い答えではありません。古いデバイスで実行すると、共有オブジェクトを探すときにコードがクラッシュするためです。 –