1

同じ Android アプリで Dropbox (Sync API) と Andengine を使用するのに苦労しています。どちらもネイティブ ライブラリを使用しており、私の知る限り、Andengine は ARMv7a 用に、Dropbox は ARM システム用に開発されています。アプリケーションの各部分を単独で実行すると、すべて正常に動作します。ただし、両方の部分を組み合わせると、java.lang.UnsatisfiedLinkError: DropboxSync を読み込めませんでした: findLibrary が null を返しました。

このフォルダが存在するとすぐに、 armeabi-v7aフォルダだけがライブラリに対してチェックされるようですか? ただし、libDropboxSync.so はarmeabiフォルダーにしかありません。

すべては、Android 4.1.2 を実行する Nexus S でテストされています。

前もってありがとう、
ステファン

4

2 に答える 2

1

$NDK/docs/CPU-ARCH-ABIS.html から:がprimary-abi見つかった場合はsecondaryスキャンされません。

III.3. Automatic extraction of native code at install time:
-----------------------------------------------------------

When installing an application, the package manager service will scan
the .apk and look for any shared library of the form:

     lib/<primary-abi>/lib<name>.so

If one is found, then it is copied under $APPDIR/lib/lib<name>.so,
where $APPDIR corresponds to the application's specific data directory.

If none is found, and a secondary ABI is defined, the service will
then scan for shared libraries of the form:

これは次の方法で確認できます。

$ adb shell getprop|grep abi
[ro.product.cpu.abi2]: [armeabi]
[ro.product.cpu.abi]: [armeabi-v7a]

ご覧のとおり、プライマリ abi はセカンダリ abi よりも具体的です。

解決策としては、armv5 ライブラリを armv7-a の下に移動できます。動作するはずですが、 の下にあるそのようなデバイスにのみ表示されGoogle Playます。

于 2013-04-19T14:20:34.793 に答える
0

3番目と4番目のポイントをチェックしてください

  1. Android Studio 内で、「プロジェクト ビュー」に切り替えます。
  2. ダウンロードした SDK の libs ディレクトリから、dropbox-sync-sdk-android.jar をプロジェクトの app/libs ディレクトリにドラッグします。
  3. dropbox-sync-sdk-android.jar を右クリックし、[ライブラリとして追加] を選択します。表示されるダイアログで「OK」をクリックします。
  4. プロジェクトの app/src/main の下に jniLibs という新しいディレクトリを作成します。SDK から、armeabi、armeabi-v7a、mips、および x86 を新しい jniLibs ディレクトリにドラッグします。
于 2015-04-01T07:06:16.120 に答える