Android 如何处理不满意的链接错误?

Android 如何处理不满意的链接错误?,android,codec,sipdroid,Android,Codec,Sipdroid,我正在开发基于SIP的应用程序来拨打和接听电话。为此,我对一个开源项目进行了分析。除此之外,我还制作了这个应用程序来支持g729编解码器。应用程序运行正常,但是当我修改应用程序的包名时,我发现这个新的编解码器出现了错误。而对于其他编解码器,应用程序运行正常。这是我的错误日志。我在这里附上了我的java文件 我有.so文件支持g729编解码器,但在更改包名后,.so文件不起作用。因为这个.so文件是使用不同的包名生成的。所以我必须有一个源文件,并需要再次编译,使其工作。怎么做 如果有人对此有想法,

我正在开发基于SIP的应用程序来拨打和接听电话。为此,我对一个开源项目进行了分析。除此之外,我还制作了这个应用程序来支持g729编解码器。应用程序运行正常,但是当我修改应用程序的包名时,我发现这个新的编解码器出现了错误。而对于其他编解码器,应用程序运行正常。这是我的错误日志。我在这里附上了我的java文件


我有.so文件支持g729编解码器,但在更改包名后,.so文件不起作用。因为这个.so文件是使用不同的包名生成的。所以我必须有一个源文件,并需要再次编译,使其工作。怎么做


如果有人对此有想法,请给我一些关于这个错误的建议。如何处理此错误?
谢谢

,因为我遇到了同样的问题。。。它与JNi或whatevr编解码器与实际java代码不匹配

本机函数的名称必须与它作为方法的类的完整package.class名称匹配。但是,应用程序可能包含与应用程序的总体包名不匹配的包。是的,在链接器文件中更改包名后,错误消失。这是导致错误的行
const char*kInterfacePath=“org/sipdroid/pjlib/g729”是的,谢谢,实际上,与当前包名相比,该编解码器使用不同的包名构建。更改包名后,错误消失。这是我根据我的要求修改的那条线<代码>常量字符*kInterfacePath=“org/sipdroid/pjlib/g729”我想为我的应用程序构建g729编解码器。使用不同的包名。你知道这件事吗?是的我很熟悉csipsimple。。。但是对于sipdroid,我不知道如何构建相同的编解码器……对于csipsimple,我曾经在linux操作系统中构建G729编解码器。是的,在csipsimple中,他们实现了G729编解码器,但在该项目的源代码中,我找不到G729编解码器的链接器文件(g729jni.cpp)。同时,我创建了g729编解码器的.so文件,但问题是它只在armeabi-v7a供电的设备中工作。我想构建一个支持所有版本的编解码器。不可能,我已经成功地在Sipdroid中添加了g729编解码器,并且它在armeabi和armeabi-v7a两种体系结构中工作,但是现在我想用不同的包名创建so文件,请参见
06-28 08:12:29.633: E/AndroidRuntime(712): java.lang.UnsatisfiedLinkError: open
06-28 08:12:29.633: E/AndroidRuntime(712):  at org.sipchat.codecs.G729.open(Native Method)
06-28 08:12:29.633: E/AndroidRuntime(712):  at org.sipchat.codecs.G729.init(G729.java:48)
06-28 08:12:29.633: E/AndroidRuntime(712):  at org.sipchat.codecs.Codecs$CodecSettings.onPreferenceTreeClick(Codecs.java:368)
06-28 08:12:29.633: E/AndroidRuntime(712):  at android.preference.Preference.performClick(Preference.java:820)
06-28 08:12:29.633: E/AndroidRuntime(712):  at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:190)
06-28 08:12:29.633: E/AndroidRuntime(712):  at android.widget.AdapterView.performItemClick(AdapterView.java:284)
06-28 08:12:29.633: E/AndroidRuntime(712):  at android.widget.ListView.performItemClick(ListView.java:3513)
06-28 08:12:29.633: E/AndroidRuntime(712):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:1812)
06-28 08:12:29.633: E/AndroidRuntime(712):  at android.os.Handler.handleCallback(Handler.java:587)
06-28 08:12:29.633: E/AndroidRuntime(712):  at android.os.Handler.dispatchMessage(Handler.java:92)
06-28 08:12:29.633: E/AndroidRuntime(712):  at android.os.Looper.loop(Looper.java:123)
06-28 08:12:29.633: E/AndroidRuntime(712):  at android.app.ActivityThread.main(ActivityThread.java:3683)
06-28 08:12:29.633: E/AndroidRuntime(712):  at java.lang.reflect.Method.invokeNative(Native Method)
06-28 08:12:29.633: E/AndroidRuntime(712):  at java.lang.reflect.Method.invoke(Method.java:507)
06-28 08:12:29.633: E/AndroidRuntime(712):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
06-28 08:12:29.633: E/AndroidRuntime(712):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
06-28 08:12:29.633: E/AndroidRuntime(712):  at dalvik.system.NativeStart.main(Native Method)