1

この質問が既に出されていることは知っていますが、既存のコードを読んで問題の解決策を見つける方法が見つかりませんでした。一部のアプリケーション ユーザーは、さまざまな種類の UnsatifiedLinkError について経験があります。

  1. 原因: java.lang.UnsatisfiedLinkError: mylib を読み込めませんでした: findLibrary が null を返しました
  2. 原因: java.lang.UnsatisfiedLinkError: ライブラリ mylib が見つかりません
  3. ローダー dalvik.system.PathClassLoader[dexPath=/system/framework/com.google.android.maps.jar: /system/app/it.mycompany.myapp.apk,library から mylib を読み込めませんでした
  4. java.lang.UnsatisfiedLinkError: ネイティブ メソッドが見つかりません: (関数が存在し、実装されています)

System.oadLibrary("mylib"); を使用してコードにライブラリをロードします。

私はそれらのどれも再現できませんでした。

いくつか提案をお願いします

4

1 に答える 1

2

可能であれば、ユーザーがこれらのエラーを受け取る Android のバージョンを確認してください。たとえば、「mylib」が、古いバージョンの Android ではなく、新しいバージョンの Android にあるシステム ライブラリに依存している可能性があります。たとえば、ネイティブ ライブラリを AssetManager に依存させたときに、これがありました。これは、Android 2.2 "Froyo" ではサポートされていませんでした。

ネイティブ ライブラリをビルドする jni フォルダーの Application.mk に次のような行を追加すると、次のようになります。

APP_PLATFORM := アンドロイド-8

API レベル 8 (Android 2.2) でサポートされていない関数またはクラスを使用している場合は、ビルド中にエラーがスローされるか、必要に応じてレベルを調整する必要があります。

グレッグ

于 2013-07-25T19:49:56.100 に答える