Android NDK Native Methode nicht gefunden Fehler

Ich versuche, Android-Anwendung mit nativen Code zu erstellen, also möchte ich testen, wenn ndk läuft erfolgreich.Wenn ich versuche, meine erste hallo Weltprojektprotokollkatze zu betreiben, sagt,

01-21 23:30:06.780: E/AndroidRuntime(939): FATAL EXCEPTION: main 01-21 23:30:06.780: E/AndroidRuntime(939): java.lang.UnsatisfiedLinkError: Native method not found: com.example.ndktesting.MainActivity.invokeNativeFunction:()Ljava/lang/String; 

Ich überprüfte einige stackoverflow Antworten, konnte aber meine Antwort nicht finden. Hier ist mein Code für Java und cI benutze android ndk r8d Version.

 //ndktest.c #include <string.h> #include <jni.h> extern "C" { JNIEXPORT jstring JNICALL Java_com_example_ndktesting_ndktest_MainActivity_invokeNativeFunction(JNIEnv* env, jobject thiz) }; JNIEXPORT jstring JNICALL Java_com_example_ndktesting_ndktest_MainActivity_invokeNativeFunction(JNIEnv* env, jobject thiz) { return (*env)->NewStringUTF(env, "Hello from native code!"); } 

Hier ist mein MainActivity Java Code

 package com.example.ndktesting; public class MainActivity extends Activity { //declare the native code function - must match ndktest.c private native String invokeNativeFunction(); public native String unimplementedinvokeNativeFunction(); // load the library - name matches jni/Android.mk static { System.loadLibrary("ndktest"); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // this is where we call the native code String hello = invokeNativeFunction(); new AlertDialog.Builder(this).setMessage(hello).show(); } } 

Android machen Datei-Code:

 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) # Here we give our module name and source file(s) LOCAL_MODULE := ndktest LOCAL_SRC_FILES := ndktest.c include $(BUILD_SHARED_LIBRARY) 

  • C ++ 11 cmath funktioniert nicht im std namespace für android NDK w / gcc-4.8 oder clang 3.4
  • Android Fatal Signal 11 (SIGSEGV) bei 0x636f7d89 (Code = 1). Wie kann man nachverfolgen?
  • Android - native Sockets, die beim ersten Versuch keinen 3G-Sleep-Modus entfernen
  • Android NDK Mutex
  • Android-Set-Affinität
  • Wie baut man Boost für Android als gemeinsame Bibliothek mit c ++ 11 Unterstützung
  • Kann nicht finden, Android NDK Builder r9 für Mac
  • Wie man nativen Code in einem Android-Bibliotheksprojekt debuggt?
  • One Solution collect form web for “Android NDK Native Methode nicht gefunden Fehler”

    Ihr Paket / Klassennamen stimmen nicht überein.

     JNIEXPORT jstring JNICALL Java_com_example_ndktesting_ndktest_MainActivity_invokeNativeFunction(JNIEnv* env, jobject thiz) 

    Wäre eine Methode in der Klasse

     com.example.ndktesting.ndktest.MainActivity 

    Allerdings ist Ihr aktueller Code

     package com.example.ndktesting; public class MainActivity extends Activity 

    verursacht es zu suchen

     com.example.ndktesting.MainActivity.invokeNativeFunction 

    ohne den "ndktest"

    Sobald Sie die Namen übereinstimmen, sollte es entweder funktionieren oder das nächste Problem aussetzen.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.