UnsatisfiedLinkError beim Aufruf einer C ++ - Methode in einer C ++ - Datei aus einer Java-Datei

Es sieht aus wie es das beliebte Problem ist,

Und ich finde die Lösung immer noch nicht heraus.

package name : app.cloudstringers

Java file : Completed.java

static {
    try {
        System.loadLibrary("ffmpeg");
    } catch (UnsatisfiedLinkError e) {
        Log.d("", "Error : " + e.toString());
    }

}

    // Define native method
public native int getString();

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.page_completed);

    // Call native method
    Log.d("", "" + getString());

C++ file : ffmpeg.cpp

#include <jni.h>
#include <android/log.h>
#include <string.h>

#ifdef __cplusplus
extern "C" {
#endif

JNIEXPORT jstring JNICALL Java_app_cloudstringers_Completed_getString(JNIEnv* env, jobject thiz)
{
jstring strRet = env->NewStringUTF("HelloWorld from JNI !");
return strRet;
}

#ifdef __cplusplus
}
#endif

Android.mk file

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := ffmpeg
LOCAL_SRC_FILES := ffmpeg.cpp
include $(BUILD_SHARED_LIBRARY)

Ich führe eine Anwendung aus, erhalte aber trotzdem die FehlerausnahmeUnsatisfiedLinkError : getString

Leute, die wissen, wie man dieses Problem behebt,

Erzähl es mir bitte,

Vielen Dank

AKTUALISIEREN Folgen Sie @dextor Antwort. Tut mir leid, weil ich den Fehler verstehe. Für diese Frage brauche ich nur eine Änderung vonpublic native int getString() zupublic native String getString().

Es funktioniert jetzt.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage