草庐IT

motion-tracking-jni-example

全部标签

java - jni 调用以自定义 java 接口(interface)作为参数的 java 方法

我正在cocos2d-x平台上开发一个插件项目,我想编写一些c++包装器接口(interface)通过JNI从jarSDK调用java方法.我知道如何使用JNI调用静态java方法,但我对java函数中的接口(interface)参数感到困惑。我有一个cpp函数指针来处理回调:typedefvoid(*MyCallback)(intresponseCode,stringarg1,setarg2);我想编写一个cpp包装器方法,例如:staticvoidMyCpp::setTags(settags,MyCallbackcallback)//ituse`JNI`toinvokejavame

安卓 ndk(cmake) : 'undefined reference to ` __android_log_write' when using log api in the second jni library

我使用AndroidStudio2.2和cmake构建jni文件。我想在jni文件中显示日志,但收到错误消息“对`__android_log_write的undefinedreference”。我的CMakeLists.txt文件是:add_library(#Setsthenameofthelibrary.native-lib#Setsthelibraryasasharedlibrary.SHARED#Providesarelativepathtoyoursourcefile(s).#Associatedheadersinthesamelocationastheirsource#fil

android - 谷歌分析安卓 SDK : Tracking My App Version & Device Model Name

我希望能够使用GoogleAnalyticsAndroidSDK跟踪我的应用程序的版本号,以及连接到我的应用程序的人的设备型号名称;实现这一目标的最佳方式是什么?我假设我可以做类似的事情:设备型号名称:tracker.trackPageView("/testApplicationHomeScreen/"+Build.MODEL);版本号:tracker.trackPageView("/testApplicationHomeScreen/"+packageInfo.versionName);这行得通吗?这是实现此目标的最佳方式,还是我应该使用事件? 最佳答案

c++ - Jni 引用表溢出

在我的android应用程序中,我广泛使用了返回一些数据的native方法。但是在多次调用后我遇到了崩溃。native调用的方法是:staticjbyteArrayJNIGetIcon(JNIEnv*e,jclassclazz){ByteBufferbuff;buff.Write(*icon,48,32,r66Api::IBitmap::TEncoding::EEnc_Rgba8888);jbyteArrayresult=GetEnv()->NewByteArray(buff.Size());GetEnv()->SetByteArrayRegion(result,0,buff.Size

android - 添加到 JNI 固定数组引用表失败(1024 个条目)

我从java复制了一个多维数组,但在使用后释放内存时遇到一些问题。我所做的是:jfieldIDh_valID=(*env)->GetFieldID(env,h_cls,"val","[[I");jobjectArrayh_val_obj=(*env)->GetObjectField(env,h,h_valID);inth_val_local[xdim][ydim];for(i=0;iGetObjectArrayElement(env,h_val_obj,i);h_val_elem=(*env)->GetIntArrayElements(env,h_val_one_dim,0);for(

android - MuPdf Android JNI 库非常大

如此处(https://github.com/sufficientlysecure/document-viewer/issues/88)所述,我们面临的问题是作为MuPdfAndroid演示一部分的JNI库非常大。在这种情况下,这会影响文档查看器应用程序的大小(https://f-droid.org/repository/browse/?fdid=org.sufficientlysecure.viewer)。APK中的*.so文件大小超过12MB!在我们几个月前将MuPdf更新到最新版本之前(即DocumentViewer的2.5版和更早版本),每个*.so文件仅占3.9MB。您能解释

android - Android jni cpp 文件中的垫到位图

我正在使用android进行原生开发。我不能在Java中使用OpenCV。我将把Bitmap作为jni的输入。我找到了一种转换Bitmap->Mat的方法。然后我可以处理()垫图像类型。现在我需要重新转换处理后的Mat->Bitmap并将其发送到java文件。我找不到任何关于如何在jnic++中完成Mat->Bitmap转换的帖子。如果我能得到这方面的任何建议,那将是很大的帮助 最佳答案 我有同样的问题,这段代码是解决方案:jobjectmat_to_bitmap(JNIEnv*env,Mat&src,boolneedPremult

android 应用程序安装为系统应用程序时找不到 jni 库

最近我遇到这样的问题,当我在android应用程序中使用jni时,构建apk时,test.so放在apk包的lib/armeabi/中,当我将这个apk安装为用户应用程序时,它可以使用System.LoadLibrary()查找时运行并查找库。而当我将它安装在system/app中时,它找不到库。任何人以前遇到过此类问题,你能告诉我如何解决这个问题吗,非常感谢任何建议。 最佳答案 AndroidNDK组的这个答案似乎有你的答案:http://groups.google.com/group/android-ndk/browse_thr

android - 如何在 Android 中使用 JNI 将 Assets FileDescriptor 正确传递给 FFmpeg

我正在尝试使用FFmpeg、JNI和Java在Android中检索元数据FileDescriptor而且它不起作用。我知道FFmpeg支持pipeprotocol所以我试图以编程方式模拟:“cattest.mp3|ffmpegipipe:0”。我使用以下代码从与Android应用程序bundle在一起的Assets中获取FileDescriptor:FileDescriptorfd=getContext().getAssets().openFd("test.mp3").getFileDescriptor();setDataSource(fd,0,0x7ffffffffffffffL);

android - Unresolved inclusion : <jni. h>

我在使用eclipse和sequoyah时遇到了一些麻烦。我写了一个简单的应用程序,没有sequoyah,它构建成功。但是落在了模拟器上,所以我决定使用sequoyah进行原生调试。在安装sequoyah之后,我发现Unresolvedinclusion不允许我构建和运行该项目。有人可以帮我吗?谢谢。 最佳答案 我必须执行以下步骤来消除此警告:打开Eclipse的导航器View(这样您就可以看到隐藏的文件)。删除.project和.cproject。清理(您可能会遇到一些错误,但这是正常的)并重新启动Eclipse。文件->新建->