Android:从JNI方法获取随机数

Android:从JNI方法获取随机数,第1张

概述我正在使用NDK创建数学运算的演示,如加法,减法,乘法和除法. 我能够创建库并从本机代码获取响应但结果不正确我的意思是它是随机静态值. Calculator.c类 #include <stdio.h>#include <jni.h>jintJava_com_example_jni_calculator_Calculator_add(JNIEnv* env, jint a, jint b) 我正在使用NDK创建数学运算的演示,如加法,减法,乘法和除法.

我能够创建库并从本机代码获取响应但结果不正确我的意思是它是随机静态值.

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方法获取随机数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1135300.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存