1

Android用のlinphoneは成功をコンパイルし、「linphone-android」プロジェクトをEclipseにインポートし、Androidフォンで実行します.しかし、アカウントまたはログインを追加すると、例外がスローされます:

ネイティブ Lorg/linphone/core/LinphoneAuthInfoImpl;.setUsername (JLjava/lang/String;) java.lang.UnsatisfiedLinkError: setUsername の実装が見つかりません

linphone-android libs ディレクトリ

問題は、.so ライブラリをロードしていないことだと思います。ログには次のように表示されます。

No JNI_OnLoad found in /data/data/org.linphone/lib/libxxx.so
4

1 に答える 1

2

この解決策を試してください:

submodules/linphone/coreapi/linphonecore_jni.cc に移動します。

linphonecore_jni.cc ファイルを編集します。

変更点は、JNIEXPORT を extern "C" に置き換え、linphone 認証情報のすべてのゲッター/セッターで JNICALL キーワードを削除することです。

/*
 * Class:     org_linphone_core_LinphoneAuthInfoImpl
 * Method:    setUsername
 * Signature: (JLjava/lang/String;)V
 */
extern "C" void Java_org_linphone_core_LinphoneAuthInfoImpl_setUsername (JNIEnv *env, jobject, jlong auth_info, jstring jusername) {
const char* username = jusername?env->GetStringUTFChars(jusername, NULL):NULL;
linphone_auth_info_set_username((LinphoneAuthInfo*)auth_info,username);
if (username) env->ReleaseStringUTFChars(jusername, username);
}

Kaushik Parmar のソリューションを参照してください。

于 2013-07-02T02:43:27.227 に答える