`
7090
  • 浏览: 278571 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jni文件传递方法参数

 
阅读更多
使用jni从java传递多个参数到c++时,如果是多个参数,当是string类型时,参数之间用;分割
	void sendToAndoridAdmobId(const char* id)
	{
		JniMethodInfo methodInfo;

														 
		if (!JniHelper::getStaticMethodInfo(methodInfo, JavaTool_ClassName, "setDomobUnitId", "(Ljava/lang/String;)V"))
		{
			return;
		}
		jstring l_stringUrl = methodInfo.env->NewStringUTF(id);
		methodInfo.env->CallStaticVoidMethod(methodInfo.classID, methodInfo.methodID, l_stringUrl);
		methodInfo.env->DeleteLocalRef(methodInfo.classID);		
		
	}


对应的java代码

	 public static void  setDomobUnitId(String id)
	 {
		 JavaTool.DOMOB_UNIT_ID = id;
	 }


但是如果是int类型,就直接挨在一起写了
	void sendToAndoridWidthHeight(int width ,int height)
	{
		JniMethodInfo methodInfo;


		if (! JniHelper::getStaticMethodInfo(methodInfo, JavaTool_ClassName, "sendToAndroidWidthHeight", "(II)V"))
		{			
			return;
		}

		
		methodInfo.env->CallStaticVoidMethod(methodInfo.classID, methodInfo.methodID, width,height);
		methodInfo.env->DeleteLocalRef(methodInfo.classID);
	}	

对应的java代码

	 public static void  sendToAndroidWidthHeight(int width , int height)
	 {
		 JavaTool.width = width;
		 JavaTool.height = height;
	 }



可以用javap   -s   -p   yourclassname 这个命令得到内部类型签名
分享到:
评论

相关推荐

    JNI 传递和返回基本参数

    本文件是 JNI 传递和返回基本参数的 Demo,详细介绍见博客:https://blog.csdn.net/u011520181/article/details/79765336,无法资源分设置 0 分,也可以去博客下面的 github 地址下载

    java jni 传递汉字参数,包括 in out

    java jni 传递汉字参数,包括java传入dll 从dll传出到java 包括全部 java 代码 工程文件 全部vc++6.0 Dll 代码 工程文件 找了好久资料才完成的,传上来省的大家再走弯路。

    JNI层传递数据

    JNI层传递数据是一个关键的环节,尤其是在处理复杂数据结构时,如内部类对象和多层结构体嵌套。这种场景在系统优化、性能提升或使用第三方库时经常遇到。 首先,让我们详细了解一下JNI如何处理Java内部类对象。在...

    JNI中C和Java参数传递详细例子

    ### JNI中C和Java参数传递详解 #### 一、引言 Java Native Interface (JNI) 是Java平台标准的一部分,用于让Java代码与其他语言写的代码进行交互。本文将深入探讨在JNI环境中,C/C++和Java之间如何进行参数传递,...

    java jni 传递汉字参数,读写ini

    java jni 传递汉字参数,包括java传入dll 从dll传出到java 读写ini 包括全部 java 代码 工程文件 全部vc++6.0 Dll 代码 工程文件 找了好久资料才完成的,传上来省的大家再走弯路。

    JNI的参数传递 一二

    Java虚拟机(JVM)通过JNI函数与本地代码交互,包括调用本地方法、传递参数和返回值。 2. **参数类型** JNI支持多种基本数据类型的参数传递,包括整型(如`jint`,`jshort`),浮点型(如`jfloat`,`jdouble`),...

    JNI 调用(包含复杂对象传参)

    实现了jni 中java向vc dll传递list参数/String参数 对象的接口。vc代码可用vc6.0运行编译,java调用接口在src\common\CameraUtil.java里面。测试了好久才实现的(涉及到项目机密,部分资源文件没有上传,内部方法是...

    JNI 调 C C++ 参数String

    在标题“JNI 调 C/C++ 参数String”中,我们将探讨如何通过JNI传递Java的String类型参数到C或C++函数,并在本地代码中进行处理。 首先,让我们了解JNI的基本结构。要使用JNI,你需要创建一个Java类,声明一些 ...

    JniCallback.zip_Android jni_android_jni android_jni callback_jni

    这个项目可能包含了一个Java类,该类定义了回调接口,以及对应的本地代码实现,演示了如何在本地代码中调用Java方法并传递数据。 6. **注意事项**: - 确保正确处理JNI指针,避免内存泄漏和悬挂引用。 - 调用Java...

    jni配置方法

    注意,JNI的使用需要遵循一定的规范,例如本地方法的命名规则、参数传递和类型转换等。在实际应用中,可能还需要处理异常、线程同步等问题。理解并熟练掌握JNI配置方法对于Java开发者来说非常重要,尤其是当需要提高...

    用Delphi开发JNI.docx

    该过程需要使用stdcall调用方式,并将Java的JNIEnv和Java对象作为参数传递。在实现过程中,需要使用jni.pas文件中的类型和结构体来定义JNIEnv和Java对象。 在开发JNI应用时,需要注意命名规则,例如,过程名称需要...

    Android APP 用interface 接口的形式对jni进行回调,实例测试

    在Android中,Java接口可以作为参数传递给JNI方法,这样就可以在C/C++代码中调用Java对象的方法。这种方式使得JNI层能够主动通知Java层某些事件的发生,增强了两者之间的通信能力。 1. 创建Java接口 创建一个Java...

    Jni中C++和Java的参数传递.pdf

    例如,我们可以定义一个`DiskInfo`类,包含一个字符串`name`和一个整型`serial`,然后声明一些本地方法来处理参数传递: ```java public class DiskInfo { public String name; public int serial; // 声明本地...

    JNI完全技术手册 带完整书签

    Chap7:Jni中C++和Java的参数传递... 33 Chap8:如何将java传递过来的jbyteArray转换成C/C++中的BYTE数组... 47 Chap5:使用JNI技术实现java程序调用第三方dll(c/c++)文件的功能... 47 Chap9:如何编写jni方法(转载...

    jni编程PDF文件

    这包括创建本地方法,调用它们,传递参数,以及在Java对象和本地数据类型之间转换。 - JNI的重要性:JNI是Java与硬件、操作系统或高性能库交互的关键工具,特别在需要高性能计算、设备驱动或操作系统服务的场景下。...

    JNI 完全技术手册

    -JNI的使用涉及数据类型的对应关系,包括Java基本数据类型和引用类型(如String、对象、数组)与C/C++类型的转换和传递方法。 - 处理JNI中的字符串、整型数组、字符串数组和对象数组等数据的传递和处理。 - Java程序...

    JNI获取Java中类方法、构造函数

    通过JNI,开发者可以在Java和C/C++之间自由地传递数据、调用方法,甚至创建新的对象,极大地扩展了Java应用程序的能力。在实际应用中,JNI常用于优化性能敏感的部分、利用硬件特性或者调用已有的C/C++库。

    Android调用Jni返回自定义对象

    当涉及到Android调用JNI并返回自定义对象时,这个过程比简单的数据类型传递更为复杂,但同时也提供了更大的灵活性。 首先,我们需要理解JNI的基本结构。在Android项目中,JNI代码通常被包含在`src/main/jni`目录下...

    JNI实战一:向Native层传递一个类,并从Native层返回一个类

    综上所述,JNI类的传递涉及到类的查找、对象的转换、方法和字段的调用,以及异常和内存管理等多个方面。熟练掌握这些知识点,能帮助开发者更高效地在Java和Native层之间进行数据交换和逻辑处理。

    Android使用JNI调用Python so解释器

    5. **注册JNI方法**:在Java的`native`方法上使用`@Override`注解,并在对应的C/C++头文件中声明这些方法。在`Android.mk`或`CMakeLists.txt`文件中,指定编译的源代码和链接的库。 6. **加载Python脚本**:在Java...

Global site tag (gtag.js) - Google Analytics