Java код:Android NDK не может найти родную функцию
package com.example.maxim.myapplication;
//...
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = new TextView(this);
tv.setText(stringFromJNI());
setContentView(tv);
}
public native String stringFromJNI();
static {
System.loadLibrary("hello-jni");
}
}
код C:
#include <string.h>
#include <jni.h>
jstring Java_com_example_maxim_myapplication_MainActivity_stringFromJNI(JNIEnv* env,
jobject thiz)
{
return (*env)->NewStringUTF(env, "Hello from JNI ! Compiled with ABI .");
}
выход LogCat:
Process: com.example.maxim.myapplication, PID: 2306
java.lang.UnsatisfiedLinkError: No implementation found for java.lang.String com.example.maxim.myapplication.MainActivity.stringFromJNI() (tried Java_com_example_maxim_myapplication_MainActivity_stringFromJNI and Java_com_example_maxim_myapplication_MainActivity_stringFromJNI__)
at com.example.maxim.myapplication.MainActivity.stringFromJNI(Native Method)
....
Имя пакета совпадает с именем функции, но есть ошибка. Имя пакета совпадает с именем функции, но есть ошибка
ту же ошибка (15 символов) – Hemul
@Hemul, если это так, то убедитесь, что на самом деле так объект, который содержит реализацию методы загружаются, см. мое редактирование ответа –