Suma de dos valores usando ndk android

He funcionado con éxito mi muestra de jni. Ahora estoy intentando agregar dos valores pero su suma no es apropiada. Estoy compartiendo mi código. Por favor dígame qué mal estoy haciendo

jint Java_com_example_hellojni_HelloJni_sumTwoValues( JNIEnv* env,jint a, jint b){ //_android_log_print("HelloJni", "values a", "%p", &a); __android_log_print("HelloJni", "LOG_TAG", "Need to print : %d %d",a, b); return (a+b); } 

Y cómo estoy llamando a este método de mi actividad es la siguiente.

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* Create a TextView and set its content. * the text is retrieved by calling a native * function. */ TextView tv = new TextView(this); tv.setText("Sum is ."+ sumTwoValues(15,7)); setContentView(tv); } /* A native method that is implemented by the * 'hellojni' native library, which is packaged * with this application. */ public native int sumTwoValues(int a,int b); // Loading 'hellojni' static { System.loadLibrary("hellojni"); } 

Y el texto de Textview no es fixed.its diferente cada vez que corro. ex de la suma que tengo es 363855916

Probar como

 jint Java_com_example_hellojni_HelloJni_sumTwoValues( JNIEnv* env, jobject obj,jint a, jint b){ //_android_log_print("HelloJni", "values a", "%p", &a); __android_log_print("HelloJni", "LOG_TAG", "Need to print : %d %d",a, b); return (a+b); } 

B'coz que defina

public native int sumTwoValues(int a,int b); como no estático

y si

 public native static int sumTwoValues(int a,int b); static method 

A continuación, utilice jclass lugar de jobject

Aquí está el fragmento de código JNI

 JNIEXPORT jint JNICALL Java_org_example_ndk_NativeLib_add (JNIEnv * env, jobject obj, jint value1, jint value2) { return (value1 + value2); } 

Crear una clase para acceder a este método NativeLib.java

 public class NativeLib { static { System.loadLibrary("ndk"); } /** * Adds two integers, returning their sum */ public native int add(int v1, int v2); } 

Y en MainActivity.java onCreate

 nativeLib = new NativeLib(); res = nativeLib.add(v1, v2); result.setText(new Integer(res).toString()); 

Puede encontrar la demostración completa de debajo del enlace

http://junedk.blogspot.in/2014/01/ndk-sum-of-two-values.html

Gracias
Juned Khan

Escriba el código de su función de esta manera. Debe dar el valor de devolución adecuado.

 JNIEXPORT jint JNICALL Java_com_example_hellojni_HelloJni_sumTwoValues(JNIEnv * env, jobject obj, jint a, jint b) { //_android_log_print("HelloJni", "values a", "%p", &a); jint total=(a+b); __android_log_print("HelloJni", "LOG_TAG", "Need to print : %d %d",a, b); return total; } 
  • Un proyecto ndk simple usando la biblioteca de Eigen y jni
  • Android, genera archivos de encabezado jni con javah, muestra error que no puede encontrar org.opencv.core.Mat
  • ¿Cómo se aplica el permiso de Android?
  • ¿Los operadores C ++ nuevos y nuevos lanzan std :: bad_alloc en Android?
  • Android ffmpeg .so descargar
  • Android OpenGL ES: auto-corrección env-> self y NvRmChannelSubmit fallaron
  • Error durante la compilación de la muestra de jni de android: inválido -march = opción: `armv5te '
  • Recuperar la carátula del álbum utilizando FFmpeg
  • Android: error al cargar la biblioteca
  • C ++ y JNI - Cómo pasar una matriz en un jfloatArray
  • Android JNI - Llamar AttachCurrentThread sin DetachCurrentThread
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.