FindClass no puede encontrar la clase Java personalizada

Tengo una aplicación puramente nativa, ya que uso el android_native_app_glue y el punto de entrada a mi aplicación es

android_main(..) 

También tengo una clase de Java tipo auxiliar:

  package abc.def.ghi public class MyJavaClass extends Activity { public void callback() { Log.v(TAG, "In MyJavaClass"); } } 

Quiero llamar al método 'callback' desde nativo. Lo hago por:

 jclass myClass = env->FindClass("abc/def/ghi/MyJavaClass"); if( myClass == NULL ) LOGI("myClass null"); jmethodID mid = m_pEnv->GetMethodID(myClass, "callback", "()V"); if( mid == NULL ) LOGI("MID null"); m_pEnv->CallVoidMethod(myClass, mid); 

Sin embargo esto da como resultado un mensaje que myClass es null. Mi puntero 'env' debería estar bien porque cuando paso "android / os / build" en FindClass, lo encuentra, pero no puedo encontrar mi clase personalizada.

En el LOGCAT, veo: "Advertencia de JNI: No se puede llamar a Labc / def / ghi; callback en instancia de Ljava / Lang / Class;"

Creo que esto significa que algo está mal con el primer parámetro de mi CallVoidMethod. Noté en los otros ejemplos que la mayoría de la gente realiza su CallVoidMethod dentro de una función con una firma que es generada por javah, y utilizan el parámetro obj en su CallVoidMethod :

  JNIEXPORT void JNICALL function(JNIEnv *env, jobject obj, jstring s) 

Sin embargo no puedo usar esto porque el punto de entrada de mi aplicación es en nativo.

Sin embargo esto da como resultado un mensaje que myClass es null. Mi puntero 'env' debería estar bien porque cuando paso "android / os / build" en FindClass, lo encuentra, pero no puedo encontrar mi clase personalizada.

Esto sugeriría que sus clases personalizadas no están en el classpath.

Tenga en cuenta que al crear una máquina virtual puede pasar opciones, incluida la configuración de classpath para incluir el directorio actual (o donde lo desee).

  • Depuración nativa de Android, bibliotecas ndk-gdb no encontradas
  • Androide ndk multitouch
  • Pasar el puntero de C a Java se convierte en NULL
  • Android Java JNI y C Char array No se puede reconocer el valor
  • Cómo ver la tabla de referencia local de JNI?
  • Cómo devolver una matriz de JNI a Java?
  • ¿Android realmente no tiene wchar_t?
  • Generación de archivos .so en Android Studio 1.0.2 con NDK
  • La muestra Hello-jni no funciona en Android Studio 2.0 Vista previa
  • El proceso de alojamiento del servicio de cámara ha muerto inesperadamente
  • Falta de correspondencia entre la firma del método y la llamada real
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.