2

Android アプリを更新するたびに、何人かのランダムな顧客がこの例外を受け取ります。2 つの理由に絞り込みましたが、どちらも jni の使用に関連しています。

  1. *.so ライブラリは、アプリがアップグレードされると削除されます。
  2. アプリをバージョンアップしても *.so ライブラリはバージョンアップされず、旧バージョンのままです。

デバイス レポートは、この問題が OS のバージョン、メモリ、または合理的なものに関連していることを示していません。Android がライブラリのアップグレードに問題を抱えている理由に焦点を当てるのではなく、このエラーが発生したときにライブラリをアプリの APK から手動で引き出して正しいディレクトリに配置する方法を誰かが知っていることを願っています。

4

1 に答える 1

2

おそらくABIの不一致があるようです-または、人々が話しているAndroidのバグによって引き起こされた誤ったABIの不一致の可能性があります。

回避策として...アプリのインストールの lib/ ディレクトリに書き込むことはできませんが、ライブラリだけで loadLibrary() の代わりに正確なパス/ファイル名で System.load() を使用すると、ライブラリを別の場所に置くことができます名前。APK から任意のコンテンツを抽出するための公式の (将来性のある) 方法はないと思いますが、現時点では、zipfile クラスを使用して (おそらく Context.getPackageCodePath() などを使用して、apk の場所とインストール変数名)

ライブラリの読み込み試行が成功したかどうかを確認し、失敗した場合はデバイスに関する情報を報告することも同様に役立つ場合があります。

于 2012-06-25T04:43:29.887 に答える