如何在android中实现ooVoo库?

时间:2014-04-03 10:02:43

标签: android audio videochat

我正在尝试实施ooVoo库,提供用户之间的视频和音频聊天,并且我在注册后从Link下载了SDK。

我已经阅读了ooVoo库的文档,但不知怎的,我甚至无法运行它的示例演示。所以,如果有人实施了这个库,那么请指导我如何做到这一点?

我已将 oovooSdk.jar 文件添加到我的项目中。

当我第一次尝试运行此应用程序时,我的logcat中出现以下错误。

04-03 09:35:21.054: E/dalvikvm(1914): dlopen("/data/app-lib/com.ooVoo.oovoosample-1/liboovoo-sdk.so") failed: Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library "libva.so" needed by "liboovoo-sdk.so"; caused by load_library(linker.cpp:745): library "libva.so" not found
04-03 09:35:21.054: D/AndroidRuntime(1914): Shutting down VM
04-03 09:35:21.054: W/dalvikvm(1914): threadid=1: thread exiting with uncaught exception (group=0xb4ce9908)
04-03 09:35:21.084: E/AndroidRuntime(1914): FATAL EXCEPTION: main
04-03 09:35:21.084: E/AndroidRuntime(1914): java.lang.UnsatisfiedLinkError: Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library "libva.so" needed by "liboovoo-sdk.so"; caused by load_library(linker.cpp:745): library "libva.so" not found
04-03 09:35:21.084: E/AndroidRuntime(1914):     at java.lang.Runtime.loadLibrary(Runtime.java:371)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at java.lang.System.loadLibrary(System.java:535)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at com.oovoo.core.ConferenceCore.<init>(ConferenceCore.java:289)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at com.oovoo.core.ConferenceCore.instance(ConferenceCore.java:176)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at com.ooVoo.oovoosample.ConferenceManager.<init>(ConferenceManager.java:103)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at com.ooVoo.oovoosample.ConferenceManager.getInstance(ConferenceManager.java:94)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at com.ooVoo.oovoosample.Main.MainActivity.initConferenceManager(MainActivity.java:104)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at com.ooVoo.oovoosample.Main.MainActivity.onCreate(MainActivity.java:58)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at android.app.Activity.performCreate(Activity.java:5104)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at android.os.Looper.loop(Looper.java:137)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at android.app.ActivityThread.main(ActivityThread.java:5039)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at java.lang.reflect.Method.invokeNative(Native Method)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at java.lang.reflect.Method.invoke(Method.java:511)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-03 09:35:21.084: E/AndroidRuntime(1914):     at dalvik.system.NativeStart.main(Native Method)

4 个答案:

答案 0 :(得分:1)

我知道这是一个老问题,但ooVoo SDK使用本机代码并要求JNI与FFI交互。根据您的IDE,这些库需要放置在不同的位置。

oovoosdk.jar正在寻找这些.so文件并且找不到它们。将这些库正确链接,它将正常工作。

Using Eclipse

在撰写本文时,使用Android Studio,需要将文件放入src/main/jniLibs并执行&#34; Gradle Sync&#34;放入项目后的项目。

答案 1 :(得分:0)

只需登录ooVoo developers site

即可
  1. 登录后转到信息中心
  2. 点击创建一个新的APP按钮 - 将生成AppId
  3. 单击VIEW按钮并再次单击VIEW TOKEN再次单击ADD TOKEN - 将生成令牌
  4. AppID 放入清单文件的元数据中。
  5. 同时将 TOKEN 放在Manifest文件的元数据中。复制TOKEN时请小心。 在实时设备上运行。 这是为我工作的。希望这些步骤可以帮助你。

答案 2 :(得分:0)

确保已将所有.so文件部署到设备。

ooVoo SDK提供2个平台 - x86和armeabi v7a。 armeabi实现只有1个.so文件,x86有3个。

某些Android设备无法正确处理它们 - 它们希望两个平台都使用相同的文件。为了解决这个问题,你可以在arm文件夹中创建名为libva-android.so和libva.so的空文件(大小为0) - 应该有帮助。

答案 3 :(得分:0)

这解决了我的问题:

public class MyActivity extends Activity {
    ...
    static {
        System.loadLibrary("oovoo-sdk");
    }
    ...
}