Android Studio 3.1.2 - Не удается запустить подпрограмму C ++ "Не найдена реализация для Java.lang.String ..." - PullRequest
0 голосов
/ 18 мая 2018

Мой код компилируется, но когда я выполняю вызов подпрограммы C ++, приложение умирает с UnsatisfiedLinkError.

В CMakeLists.txt:

add_library( # Sets the name of the library.
             native-lib

             # Sets the library as a shared library.
             SHARED

             # Provides a relative path to your source file(s).
             src/main/cpp/crlTCheckkey.cpp)

В Tab1.java:

package com.labyrinthsys.crltext;

String statusString;
String keyPath;
            statusString = crlTCheckkey(keyPath);
...

public native String crlTCheckkey(String keyPath);

В crlTCheckkey.cpp:

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

using namespace std;

extern "C" JNIEXPORT jstring

JNICALL
Java_com_labyrinthsys_crltext_Tab1_crlTCheckkey(
    JNIEnv *env,
    jobject, /* this */
    jstring keyFilePath) {

Ошибка, которую я получаю:

java.lang.UnsatisfiedLinkError: No implementation found for java.lang.String com.labyrinthsys.crltext.Tab1.crlTCheckkey(java.lang.String) (tried Java_com_labyrinthsys_crltext_Tab1_crlTCheckkey and Java_com_labyrinthsys_crltext_Tab1_crlTCheckkey__Ljava_lang_String_2)
                  at com.labyrinthsys.crltext.Tab1.crlTCheckkey(Native Method)
                  at com.labyrinthsys.crltext.Tab1.onClick(Tab1.java:118)

Я спрашиваю у местных без удачи.Что мне не хватает?Спасибо!

1 Ответ

0 голосов
/ 20 мая 2018

Это очень раздражает, но я полностью удалил рассматриваемый файл cpp из сборки, а затем снова ввел его с нуля, и теперь он каким-то образом работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...