android - 编译 ICS/JB 相机应用程序 - native 库 jni-mosaic 错误

标签 android android-ndk java-native-interface android-camera

我想使用 ICS/JB 相机应用程序具有的全景模式。 我已经下载了源代码(带有资源)并设法解决了所有代码编译错误,但是当我在我的设备上启动应用程序(运行 JB)时,我收到了这个错误:

10-25 14:42:53.617: E/AndroidRuntime(23147): FATAL EXCEPTION: GLThread 2586
10-25 14:42:53.617: E/AndroidRuntime(23147): java.lang.UnsatisfiedLinkError: Native method not found: com.app.camera.panorama.MosaicRenderer.reset:(IIZ)V
10-25 14:42:53.617: E/AndroidRuntime(23147):    at com.app.camera.panorama.MosaicRenderer.reset(Native Method)
10-25 14:42:53.617: E/AndroidRuntime(23147):    at com.app.camera.panorama.MosaicRendererSurfaceViewRenderer.onSurfaceChanged(MosaicRendererSurfaceViewRenderer.java:49)
10-25 14:42:53.617: E/AndroidRuntime(23147):    at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1505)
10-25 14:42:53.617: E/AndroidRuntime(23147):    at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)

我确实有一个 libjni-mosaic 库,位于 armeabi-v7a/armeabi/x86 中,它似乎可以很好地加载它,但它可能不包含 MosaicRenderer 实现的方法。

我还尝试编译 CyanogenMod 相机应用程序 https://github.com/CyanogenMod/android_packages_apps_Camera/tree/ics但我得到了同样的错误...

相机本身可以工作,用于静止图像和视频录制,但一旦我切换到全景模式,它就会崩溃。

谁能指出我正确的 jni-mosaic 库或者我做错了什么?我是否需要执行某些操作才能让我的应用程序使用 JNI/SO 文件?

最佳答案

您将 Java 类 MosaicRenderer 移动到 com.app.camera.panorama 包中,但是 mosaic_renderer_jni.cpp 文件仍然具有引用 com 的原生方法.android.camera.panorama,喜欢

JNIEXPORT void Java_com_android_camera_panorama_MosaicRenderer_reset(

您应该更改 native 代码中的函数名称以反射(reflect)新的包名称,例如

JNIEXPORT void Java_com_app_camera_panorama_MosaicRenderer_reset(

关于android - 编译 ICS/JB 相机应用程序 - native 库 jni-mosaic 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13069056/

相关文章:

android - android的KeyguardManager中的isDeviceLocked和isKeyguardSecure有什么区别?

android - Fused location provider 似乎没有按照间隔集更新坐标

java - Android NDK java.lang.UnsatisfiedLinkError 错误

java - Android 中按下 Back 键时会自动调用 LoaderManager?

Android NDK C 预处理器为 TARGET_PLATFORM 定义

android - NDK 一般段错误,decStrong?

c++ - JNI/Android NDK - 维护全局对象引用

android - 将 BLENDER 模型导出到 C++ 头文件内的 OpenGL 几何体中

java - 来自 JNI_CreateJavaVM (jvm.dll) 的异常 0xC0000005

java - 全屏视频查看而不拉伸(stretch)视频