草庐IT

Hello-Jni

全部标签

android - 奇怪的 : can not change the value of Integer in jni

我写了一个jni函数来在C中设置两个javaInteger对象的值,就像这样:jni_do_something(JNIEnv*env,jobjectthiz,jobjectp1,jobjectp2){jclassc;jfieldIDid;c=env->FindClass("java/lang/Integer");if(c==NULL){LOGD("FindClassfailed");return-1;}id=env->GetFieldID(c,"value","I");if(id==NULL){LOGD("GetFiledIDfailed");return-1;}env->SetInt

java - Android JNI native C 函数调用杀死 Activity

什么有效:我有一个运行TUN/TAP服务的c可执行文件,以及两个在终端中运行良好的shell脚本(用于配置“ip路由”和“iptables”),均以root身份运行。什么不起作用:我正在尝试创建一个Android应用程序来在按下按钮后运行c可执行文件和shell脚本。我最初这样做是为了让onClick使用processBuilder创建一个进程,如下所示:finalButtonbutton1=......publicvoidonClick(Viewv){Stringip_address=edIPAddress.getText().toString();Processprocess;tr

具有垂直选项卡的 Android 布局 - 设计如 hello 短信应用程序

有人可以帮我设计像给定图片中的垂直标签吗(取自你好短信应用程序)我不是要代码fragment,所以请不要将此问题作为家庭作业类型。我想知道的是我应该采取的方法。我是否已经扩展了现有的TabLayout或具有一些样式和UI自定义的现有tablayout?您指向正确资源的指针会很有帮助。谢谢 最佳答案 您可以在android中使用多Pane布局来实现此目的。在您的右侧创建ListViewfragment,右侧使用fragment实现详细信息屏幕。如果您想滑动左侧ListView,请使用slidepanelayout。

android - 媒体元数据检索器 JNI (14060) : getFrameAtTime: videoFrame is a NULL pointer(Android)

我正在使用MediaMetadataRetriever按视频帧创建缩略图,但我在Logcat中收到此消息:E/MediaMetadataRetrieverJNI(14060):getFrameAtTime:videoFrameisaNULLpointer这是我的代码:MediaMetadataRetrieverretriever=newMediaMetadataRetriever();try{UrivideoURI=Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.video_one);retriever=newMed

Java:在 JNI 中访问静态最终字段

有没有办法在JNI中访问静态最终字段?publicclassTryMe{publicinta=1;publicfinalintb=2;publicstaticintc=3;publicstaticfinalintd=4;}C++JNI代码:jclasscls=env->FindClass("my/package/TryMe");jfieldIDa=env->GetFieldID(cls,"a","I");//OKjfieldIDb=env->GetFieldID(cls,"b","I");//OKjfieldIDc=env->GetStaticFieldID(cls,"c","I");

java - 如何在 JNI 中查找二维数组大小

我来这里是为了征求您对我的问题的建议。我是新来的蜜蜂,从昨天开始我就被困在这个问题上,但无法解决。我试图在JNI中找到二维数组大小,但没有得到成功的结果。我拥有的以下代码。你们能解决我的问题吗?JNIEXPORTjintJNICALLJava_com_example_imagejoiner_MyJoiner_test(JNIEnv*env,jobjectjavaThis){LOGV("testprint");return1;}JNIEXPORTvoidJNICALLJava_com_example_imagejoiner_MyJoiner_joinNative(JNIEnv*env,j

java - JNI 错误 : accessed stale weak global reference

我在我的native代码中缓存了对Java对象的引用,就像这样://javaglobalreferencedeleter//_JAVA_ENVisaninstanceofJNIEnvthatiscachedgloballyandjust//validincurrentthreadscopestaticvoidg_java_ref_deleter(jobjectptr){_JAVA_ENV->DeleteGlobalRef(ptr);}//nativeclasscachesajavaobjectreferenceclassNativeA{private:shared_ptrM_java_

Android JNI 异常处理

我需要在JNI代码中实现异常处理。我不擅长jni,也找不到任何好的例子。因此,请为此提供完整示例。这就是我正在做的:jintJNI_OnLoad(JavaVM*vm,void*reserved){jintresult=-1;g_JavaVM=vm;if(vm->GetEnv((void**)&envLocal,JNI_VERSION_1_6)!=JNI_OK){return-1;}jclassclazz;**clazz=envLocal->FindClass("com/graphics/myclass/MyClass");**if(clazz==NULL)__android_log_p

Android JNI 找不到 C++ 标准库头文件

我正在关注android-studio-jniguide并尝试用gradle编译C++native代码。一切都很好:我可以加载JNI函数、编写C++类、编译、运行和调试。而且我不需要编写和维护Application.mk和Android.mkmakefile;它们似乎都由gradle隐式处理。只有一件事我不明白:HowtoincludeC++headerfilesfromthestandardlibraries?我想我一定是在gradle脚本中遗漏了一些东西,但我找不到关于在这里添加什么的好的引用。这是脚本:android.ndk{moduleName="hello-android-j

android - 我编译的任何 Android 应用程序都需要一些权限,即使是 Hello World 应用程序

当创建仅将HelloWorld放入TextView元素的HelloWorld应用时,该应用会请求“读取手机状态和身份”以及“修改和删除SD卡内容”的权限。我在任何地方都找不到(甚至在整个项目文件夹中递归搜索)对这两个权限的任何引用。人们提示他们的应用程序请求随机权限的各种线程,结果是库依赖项使用它。我不使用任何库。我的进口商品是android.app.Activity,android.widget.TextView和android.os.Bundle.我的AndroidManifest.xml包含这个:注意没有.libs文件夹是空的;res文件夹恰好包含两个文件夹,每个文件夹都有一个x