我想使用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 lib,位于armeabi-v7a / armeabi / x86中,似乎加载它很好,但它可能不包含MosaicRenderer实现的方法。
我也尝试过编译CyanogenMod相机应用程序https://github.com/CyanogenMod/android_packages_apps_Camera/tree/ics但是我得到了同样的错误......
相机本身适用于静止图像和视频录制,但只要我更改为全景模式,它就会崩溃。
任何人都可以指出我正确的jni-mosaic lib或者可能是我做错了什么?我是否需要做一些事情以使我的应用程序使用JNI / SO文件?
答案 0 :(得分:1)
您将Java类MosaicRenderer移动到包com.app.camera.panorama
,但mosaic_renderer_jni.cpp
文件仍然使用本地方法引用com.android.camera.panorama
,如
JNIEXPORT void Java_com_android_camera_panorama_MosaicRenderer_reset(
您应该更改本机代码中的函数名称以反映新的包名称,例如
JNIEXPORT void Java_com_app_camera_panorama_MosaicRenderer_reset(
答案 1 :(得分:0)
如果有人仍然有兴趣构建Google的原生相机应用程序,我建议您使用此存储库https://android.googlesource.com/platform/packages/apps/Camera2/它不需要构建所有Android操作系统代码。它对我非常有帮助。