0

Vuforia 拡張現実 SDK を使用するアプリをリリースしました。私のすべてのデバイスと大多数のユーザーにとって、アプリは問題なく使用されています。しかし、ユーザーから UnsatisfiedLinkErrors の ACRA 自動レポートがいくつかありました。さらに診断する方法がわかりません。

メイン アクティビティの静的 {} ブロックには、次のコードがあります。

static {
    loadLibrary("QCAR");
    loadLibrary("MYLIB");
}

そこに問題はありません..そして、宣言されたネイティブサイド関数もたくさんあります。その最初のものは次のとおりです。

public native void setX(int x);

Java_domain_mine_MainActivity_setX(JNIEnv *env, jobject, jint x) {

MainActivity の onCreate() メソッドで、JNI に関連しない少量のコードが実行され、最初の JNI 呼び出しである setX(x) が UnsatisfiedLinkErrors 例外をスローします。

私が言ったように、このコードは私とほとんどのユーザーにとって問題なく動作するので、プログラム的には上記で問題ないと思います。そのような状況で、setX 関数を含むライブラリが正しく読み込まれていないという 100% の結論を引き出すことができますか? それとも、ライブラリのロードが完了していないということでしょうか?

ライブラリをロードするための静的な {} 呼び出しはメイン スレッドで実行されるため、setX への呼び出しは loadLibrary 呼び出しの後に来る必要があるため、ライブラリはロードの試行を終了し、失敗または成功すると想定していますが、そうではありませんそれらがまだ別のスレッドで初期化されている場合。

他の誰かが同様の問題を抱えていましたか? もしそうなら、どのように対処しましたか?

ちなみに、この問題が発生したデバイスに類似点は見られません。1 つは 2.3.6、もう 1 つは 4.1.1 です。どちらも違うメーカー...

4

2 に答える 2

2

mips、x86、armeabi-v7a などの異なる ABI 用にビルドする場合

APP_ABI := allあなたのmkファイルに

しかし、Googleがフィルターをチェックしているので、問題はそこにあるとは思いません http://developer.android.com/google/play/filters.html

>> その他のフィルタ >> CPU アーキテクチャ (ABI) に移動します。

于 2013-03-22T04:57:41.270 に答える
0

ネイティブ コードはコンパイルされません。

Eclipse を使用してコードを開発している場合は、NDK サポートを追加してネイティブ コードをコンパイルする必要があります。

于 2014-09-16T09:21:26.940 に答える