2016-06-14 5 views
1

だから、いくつかのビルドには含まれていますが、他のビルドには含まれていない.soがあります。Androidでビルドに使用されるabiを決定するもの

私のprebuildスクリプトは.soを削除します。関連付けられた.jarは、ライブラリをbuild.gradleから削除します。

ライブラリーはサードパーティ製のもので、x86またはarm-v7を要求することはありません。それは私の腕の中だけに提供されています。

ライブラリサポートなしでビルドすると、apkのx86サポートがないというXamarin Testのエラーが発生します。

実際にapiがサポートするabiを制御するもの。 Xamarinの開発者ポータル上

答えて

0

それは私の前のビルドスクリプトは、実際の.soファイルを削除していないことが判明。

コア/ srcに/メイン/ jniLibs

2

Using Native Librariesドキュメントはこの半分を説明しています

https://developer.xamarin.com/guides/android/advanced_topics/using_native_libraries/

AndroidのアプリケーションでサポートされているのABIがlib/<ABI>フォルダの下に、あなたのAPK内部の.soファイルの存在によって決定されていますABIは、armeabi、armeabi-v7a、arm64-v8a、mips、mips64、x86、x86_64(現在の7つのABI)のうちの1つ以上です。

私は個人的に展開され得るもののファイルを支援することができますストアをGoogle Playからアプリを使用します。

https://play.google.com/store/apps/details?id=com.xh.nativelibsmonitor.app

だから何が起こることはほとんどのデバイスは、通常、複数のABIをサポートしていることです。したがって、Android Package Managerがデバイスが好きな.soファイルをインストールするために使用する、サポートされているABIのリストが表示されます。

基本的には、上記の<ABI>フォルダのそれぞれに最適化されたライブラリを配置することをお勧めします。アプリケーションがデバイスにインストールされると、サポートされているアーキテクチャのうちの1つだけがインストールされます。

http://ph0b.com/android-abis-and-so-files/が人間が読めるリソースとして多くの感謝をします。

そうでない場合は、より技術的なリソース:https://developer.android.com/ndk/guides/abis.html

+0

-rfそれは私がXamarin SDKを使用していないRM

のrm -rf /コア/ srcに/メイン/ jniLibs

ない

ましたXamarinのテストツールを使用しようとしています。私はABIを使用する必要があるすべての要素を削除したと考えていますが、APKだけがアームをサポートしているというエラーがまだ発生しています。 – draksia

+0

これはネイティブAndroidでも同様です。答えは、abiがデバイスによってサポートされているものを制御するものです。あなたのエラーは、あなたがテストしているデバイスがx86をサポートしているを見つけられないということです。したがって、APKはそれが探しているをサポートしていません。 –

+0

私はabiを使用していないだけで、すべてのタイプが正しくサポートされているはずですか? – draksia

関連する問題