java .lang.UnsatisfiedLinkError: Не найдена реализация для java .lang.String com.vmukti.ndktest.MainActivity.stringFromJNI () - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь создать один файл .so для hello-word, но я получаю сообщение об ошибке ниже,

java .lang.UnsatisfiedLinkError: Реализация для java .lang не найдена .String com.vmukti.ndktest.MainActivity.stringFromJNI ()

Вот весь мой код:

Android .mk

LOCAL_PATH  :=  $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    :=  ndktest
LOCAL_SRC_FILE  :=  ndktest.c

include $(BUILD_SHARED_LIBRARY)

Приложение. mk

APP_PLATFORM    := android-16
APP_CFLAGS += -Wno-error=format-security
APP_ABI :=  all

ndktest. c

#include <jni.h>
#include <string.h>

extern "C" JNIEXPORT jstring JNICALL
Java_com_vmukti_ndktest_MainActivity_stringFromJNI(
    JNIEnv *env,
    jobject /* this */) {
    std::string hello = "Hello from C++";
    return env->NewStringUTF(hello.c_str());
    }

MainActivity. java

package com.vmukti.ndktest;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.os.Handler;
import android.util.Log;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;

public class MainActivity extends AppCompatActivity {

    static {
        System.loadLibrary("ndktest");
    }



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        stringFromJNI();
    }
    private native String stringFromJNI();
}

enter image description here

...