Я работаю над одним модулем, имеющим функциональность видеочата. для этого я использую Webrtc. Я очень близок к этому, но во время звонка я получаю одну проблему.java.lang.UnsatisfiedLinkError: родной метод не найден: org.webrtc.PeerConnectionFactory.initializeFieldTrials: (Ljava/lang/String;) V
сервер всегда возвращает
{"params": {"messages": []}, "result": "FULL"}
и после этого я получаю еще один вопрос, как,
java.lang.UnsatisfiedLinkError: Native method not found: org.webrtc.PeerConnectionFactory.initializeFieldTrials:(Ljava/lang/String;)V
Во-первых я имел проблемы для джингл родной библиотеки. Я также интегрировал его в jni-каталог. также обновленный файл peerconnection_jni.cc, но такая же ошибка ..
Я могу прикрепить файл peerconnection_jni.cc тоже (если требуется).
Я тоже искал в Google. но не получать фактический результат. Кто-нибудь может мне помочь, пожалуйста?
UPDATE:
Это код моего peerconnection_jni.cc
extern "C" {
JNIEXPORT void JNICALL Java_org_webrtc_PeerConnectionFactory_initializeFieldTrials
(JNIEnv* evn,jclass _class,jstring j_trials_init_string) {
field_trials_init_string = NULL;
if (j_trials_init_string != NULL) {
const char* init_string =
jni->GetStringUTFChars(j_trials_init_string, NULL);
int init_string_length = jni->GetStringUTFLength(j_trials_init_string);
field_trials_init_string = new char[init_string_length + 1];
rtc::strcpyn(field_trials_init_string, init_string_length + 1, init_string);
jni->ReleaseStringUTFChars(j_trials_init_string, init_string);
LOG(LS_INFO) << "initializeFieldTrials: " << field_trials_init_string;
}
webrtc::field_trial::InitFieldTrialsFromString(field_trials_init_string);
}
}
Это мой выход Logcat.
04-06 19:20:57.041: E/AppRTCDemoActivity(26645): Fatal error: Native method not found: org.webrtc.PeerConnectionFactory.initializeFieldTrials:(Ljava/lang/String;)V
04-06 19:20:57.041: E/AppRTCDemoActivity(26645): java.lang.UnsatisfiedLinkError: Native method not found: org.webrtc.PeerConnectionFactory.initializeFieldTrials:(Ljava/lang/String;)V
04-06 19:20:57.041: E/AppRTCDemoActivity(26645): at org.webrtc.PeerConnectionFactory.initializeFieldTrials(Native Method)
04-06 19:20:57.041: E/AppRTCDemoActivity(26645): at org.appspot.apprtc.PeerConnectionClient.createPeerConnectionFactoryInternal(PeerConnectionClient.java:268)
04-06 19:20:57.041: E/AppRTCDemoActivity(26645): at org.appspot.apprtc.PeerConnectionClient.access$18(PeerConnectionClient.java:257)
04-06 19:20:57.041: E/AppRTCDemoActivity(26645): at org.appspot.apprtc.PeerConnectionClient$1.run(PeerConnectionClient.java:222)
04-06 19:20:57.041: E/AppRTCDemoActivity(26645): at android.os.Handler.handleCallback(Handler.java:725)
04-06 19:20:57.041: E/AppRTCDemoActivity(26645): at android.os.Handler.dispatchMessage(Handler.java:92)
04-06 19:20:57.041: E/AppRTCDemoActivity(26645): at android.os.Looper.loop(Looper.java:137)
04-06 19:20:57.041: E/AppRTCDemoActivity(26645): at org.appspot.apprtc.util.LooperExecutor.run(LooperExecutor.java:57)
откуда ваш призывающий initializeFieldTrials метода() ?? и вы загружаете собственную библиотеку перед вызовом этого метода? – Saritha
Я вызываю метод initializeFieldTrials из метода PeerConnectionClient.java> createPeerConnectionFactoryInternal(). и да, я загружаю эту библиотеку, используя «static {System.loadLibrary (« jingle_peerconnection_so »);}» в верхней части этого класса. – Ajay
okay..if при использовании метода JNI, тогда это имя метода должно содержать некоторые соглашения об именах. Вы использовали это соглашение об именах? и в каком направлении вы проходите этот метод? Я думаю, струна ... ладно? – Saritha