我能够创建库并从本机代码获取响应但结果不正确我的意思是它是随机静态值.
Calculator.c类
#include <stdio.h>#include <jni.h>jintJava_com_example_jni_calculator_Calculator_add(jnienv* env,jint a,jint b) { return (jint)(a + b);}jintJava_com_example_jni_calculator_Calculator_substract(jnienv* env,jint b) { return (jint)(a - b);}jintJava_com_example_jni_calculator_Calculator_multiply(jnienv* env,jint b) { return (jint)(a * b);}jintJava_com_example_jni_calculator_Calculator_devIDe(jnienv* env,jint b) { return (jint)(a / b);}
Calculator.java类用于加载库和启动本机方法.
public class Calculator { static { System.loadlibrary("Calculator"); } public native int add(int a,int b); public native int substract(int a,int b); public native int multiply(int a,int b); public native int devIDe(int a,int b);}
我使用下面的代码来显示结果:
int num1 = Integer.parseInt(txtNumber1.getText().toString().trim());int num2 = Integer.parseInt(txtNumber2.getText().toString().trim());tvResult.setText(String.format("%1$d + %2$d is equals to %3$d",num1,num2,mCalculator.add(num1,num2)));
产量
解决方法 您正在声明非静态方法,并且不传递对“jobject”的引用 – 这就是您在返回值中获取垃圾的原因.要修复该错误,您必须在本机代码中为“jobject”添加一个额外的参数,就在“env”参数之后.
总结以上是内存溢出为你收集整理的Android:从JNI方法获取随机数全部内容,希望文章能够帮你解决Android:从JNI方法获取随机数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)