android jni 结构体_Android——- jni返回结构体-Fun言

1.创建工程,添加jni

2. main.cpp

#include

struct test_data

{

char name[256];

int num;

double average;

};

extern "C" {

JNIEXPORT jobject JNICALL Java_com_re_struct_MainActivity_call(JNIEnv * env, jobject obj, jobject classobj);

};

JNIEXPORT jobject JNICALL Java_com_re_struct_MainActivity_call(JNIEnv * env, jobject obj, jobject classobj)

{

jclass objectClass = env->FindClass("com/re/struct/test_data");

jfieldID name = env->GetFieldID(objectClass, "name", "Ljava/lang/String;");

jfieldID num = env->GetFieldID(objectClass, "num", "I");

jfieldID average = env->GetFieldID(objectClass, "average", "D");

env->SetObjectField(classobj, name, env->NewStringUTF("hello world"));

env->SetIntField(classobj, num, 10);

env->SetDoubleField(classobj, average, 2.5);

return classobj;

}

3. test_data.java

package com.re.struct;

public class test_data {

public String name;

public int num;

public double average;

}

4. MainActivity.java

package com.re.struct;

import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

import android.view.Menu;

public class MainActivity extends Activity {

static{

System.loadLibrary("main");

}

private native test_data call(test_data data);

private test_data data = new test_data();

private static final String TAG="######";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

data = call(data);

Log.e(TAG, "name:" + data.name);

Log.e(TAG, "num:" + data.num);

Log.e(TAG, "average:" + data.average);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

}

5. 效果:

6. 补充:

Java类型

符号

boolean

Z

byte

B

char

C

short

S

int

I

long

L

float

F

double

D

void

V

objects对象

Lfully-qualified-class-name;        L类名;

Arrays数组

[array-type [数组类型

methods方法

(argument-types)return-type(参数类型)返回类型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

stm32入门之keil5的安装以及第一个工程的建立

摘自:stm32入门之keil5的安装以及第一个工程的建立 作者:SKY丶丿平才 发布时间: 2020-12-06 17:08:30 网址:https://blog.csdn.net/weixin_48264057/article/details/110734596 文章目录 前言一、keil5的下载与安装1.下载相关链接…

Java的静态域以及封装性相关

EmployeeTest类,用于定义一个简单的属性类。 1 package yang.src;2 3 import java.util.Date;4 5 public class EmployeeTest {6 private Date hireDay;7 public static final int gId 10;8 9 public int iData 11; 10 public static int iData1 …

微信电脑客户端_无聊的话,用微信玩玩电脑

被禁足的2020注定是让人印象深刻的一年如果现在你很无聊来试试用微信玩玩电脑看能否给这不出门就是做贡献的日子带来一点乐趣开启步骤1、在能使用(接触的)的电脑上安装上Hipc在电脑访问 hipc.cn下载PC客户端(仅2M左右大小)2、安装PC客户端3、微信扫一扫绑定现在看看如何用微信玩…

epic堡垒之夜显示服务器离线,堡垒之夜epic服务器进不去 | 手游网游页游攻略大全...

发布时间:2017-12-19堡垒之夜开国服了,那么有的小伙伴就发现自己的国服为什么进不去,下面牛游戏小编就为你们带来了堡垒之夜国服进不去的解决办法,想了解的小伙伴就一起来看看吧,希望能对你们有帮助. 解决办法如下: 1.重新下载并安装游戏,下载前关 ...标签&#xff…

js获取单选按钮的值

var obj document.getElementsByName("adminFlag"); for(var i 0; i < obj.length; i ) { if (obj[i].checked) { var type obj[i].value; } } 转载于:https://www.cnblogs.com/CatsBlog/p/9294771.html

动态加载 回显_ElementUI cascader级联动态加载及回显

先看图&#xff0c;你是否也遇到这个需求&#xff1f;如果你正在焦头烂额&#xff0c;无脑抓瞎&#xff0c;那么你来对地方了&#xff0c;因为我将给你一个简单易懂的实现方案。我也在网上翻了无数页答案&#xff0c;也照着别人的代码和思路尝试了&#xff0c;事实上并不能解决…

单片机的四种烧写方式

参考&#xff1a;单片机的四种烧写方式 作者&#xff1a;爱学习的小王呀 发布时间&#xff1a;2020-11-27 20:05:12 网址&#xff1a;https://blog.csdn.net/hongliwong/article/details/110245095?spm1001.2014.3001.5501 参考&#xff1a;单片机3种烧录方式解析 作者&#x…

关于驰骋表单引擎中字段扩展设置对文本框Pop窗体返回值的升级说明 2012/11/13...

为什么80%的码农都做不了架构师&#xff1f;>>> 关于驰骋表单引擎中字段扩展设置对文本框Pop窗体返回值的升级说明 2012/11/13 现有功能: 以前版本仅支持自己定义url&#xff0c;返回值到文本框上. 升级功能: 1, 增加了可以自己定义数据源模式&#xff0c;数据源可…

中兴f650 2.0.3 固件降级_手机资讯:如何升级iOS12.1.4正式版iOS12.1.4正式版升降级教程...

如今使用IT数码设备的小伙伴们是越来越多了&#xff0c;那么IT数码设备当中是有很多知识的&#xff0c;这些知识很多小伙伴一般都是不知道的&#xff0c;就好比最近就有很多小伙伴们想要知道如何升级正式版正式版升降级教程&#xff0c;那么既然现在大家对于如何升级正式版正式…

C# 加密解密类

一. MD5 1 防止看到明文 数据库密码&#xff0c;加盐(原密码固定字符串&#xff0c;然后再MD5/双MD5) 2 防篡改 3 急速秒传(第一次上传文件&#xff0c;保存md5摘要&#xff0c;第二次上传检查md5摘要) 4文件下载(防篡改&#xff0c;官方发布的时候给一个md5摘要&#xf…

请求solr服务器未响应,solr与tomcat整合

一、准备工作&#xff1a;我使用的是tomcat7.0,solr-4.8.1solr-4.8.1解压后是这样的。二、开始配置了1、首先要创建两个文件夹。home和server。我是创建在与solr-4.8.1同一根目录上的。D:\work-tool\server\solr\home和D:\work-tool\server\solr\server2、从solr-4.8.1\dist复制…

单列多行转单行单列合并oracle_oracle中多行转单行的两种方法

在oracle中多行转单行的方法有很多比如&#xff1a;wmsys.wm_concat、listagg。但是要注意它们支持的oracle版本&#xff0c;wmsys.wm_concat是oracle 10g推出的&#xff0c;listagg是oracle 11g推出的。wmsys.wm_concat的用法select wmsys.wm_concat(多行转转单行的列) from t…

WeMos下实现小车避障与手机控制

参考&#xff1a;WeMos下实现小车避障与手机控制 作者&#xff1a;爱学习的小王呀 发布时间&#xff1a;2020-10-02 10:17:45 网址&#xff1a;https://blog.csdn.net/hongliwong/article/details/108900048?spm1001.2014.3001.5501 目录前言一、项目软硬件平台及开发环境1.硬…

苹果手机耗电快_iPhone12用5G耗电快,苹果回应

原标题&#xff1a;iPhone12用5G耗电快&#xff0c;苹果回应北京头条客户端10月24日消息&#xff0c;针对有媒体测试苹果iPhone12开启5G模式下&#xff0c;用电量提升的问题&#xff0c;苹果iPhone营销副总裁Kaiann Drance回应称&#xff0c;iPhone12 增加的智能数据模式可以平…

Ubuntu12 10下安装JDK7

为什么80%的码农都做不了架构师&#xff1f;>>> Ubuntu12 10版本下&#xff0c;不再预装JDK&#xff0c;包括OpenJdk&#xff0c;所以我们要从Oracle官网上下载java7的压缩包&#xff0c;选择适合自己电脑的安装包&#xff0c;我选的是jdk-7u9-linux-i586.tar.gz。…

粒子文字特效css,CSS3 粒子效果

css3粒子效果#topcanvas{position:absolute;background:#fff;z-index:-7;width:300px;height:300px;}function $(id){return typeof id "string" ? document.getElementById(id) : id;}(function (window, undefined) {if (window.ZHJ) {return;}// }var ZHJ wind…

maven系列一:pom.xml文件详解

<project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <!-- 父项目的坐…

单片机原理概念

参考&#xff1a;单片机原理概念 作者&#xff1a;爱学习的小王呀 发布时间&#xff1a;2020-11-27 08:58:08 网址&#xff1a;https://blog.csdn.net/hongliwong/article/details/110219821?spm1001.2014.3001.5501 单片机原理概念单片机执行指令单片机数的本质和物理现象单片…

rsync+inotify一键安装脚本

一、环境描述 server&#xff1a;192.168.122.54 client&#xff1a;192.168.122.55&#xff0c;192.168.122.56 同步目录&#xff1a;/data/html server端有任何数据更新&#xff0c;即将同步到client端&#xff0c;实时同步 二、采用方法&#xff1a;rsyncinotify 三、关于in…

neo4j python 算法_python操作neo4j简单实例

一&#xff1a;neo4j是什么neo4j:Neo4j是一个高性能的,NOSQL图形数据库,有关于更多neo4j的资料出门右拐二:python操作neo4j的实现python中neo4j的操作可以利用驱动包或者py2neo包&#xff0c;我采用py2neo第三方包实现以下简单功能&#xff0c;先建立一个neo4j的链接对于neo4j的…