1
Я начинаю изучать NDK. Я загрузил последние инструменты NDK и плагин eclipse. Я следовал базовому руководству и попытался запустить. Я получаю его работу без затмения плагина (Calling вручную ndk-build
), но с плагин я получаю эту excepsion:Получение исключения из первого приложения NDK
02-17 17:49:01.477: E/AndroidRuntime(9746): java.lang.UnsatisfiedLinkError: performOperation
Вот мой код:
package com.helloworld;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class HelloWorld extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hello_world);
NativeLibrary nativeobject = new NativeLibrary();
nativeobject.result(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.hello_world, menu);
return true;
}
}
и:
package com.helloworld;
import android.content.Context;
import android.widget.Toast;
public class NativeLibrary {
/* *
* performOperation is defined in native library
*/
public native String performOperation();
/* *
* loads the library shared object
*/
static {
System.loadLibrary("NativeLibrary");
}
/* *
* Computes the result
*/
public void result(Context ctx) {
Toast.makeText(ctx, performOperation(), Toast.LENGTH_SHORT).show();
}
}
каст:
#include <jni.h>
JNIEXPORT jstring JNICALL Java_com_helloworld_NativeLibrary_performOperation(
JNIEnv* env, jobject o) {
return env -> NewStringUTF("this is NativeLibrary");
}
Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := NativeLibrary
LOCAL_SRC_FILES := NativeLibrary.cpp
include $(BUILD_SHARED_LIBRARY)
Сообщения манифеста. Вы изменили имя пакета? – 323go
имя пакета правильно. – SnapDragon
Ответ такой же, как здесь: http://stackoverflow.com/questions/11704920/android-ndk-java-lang-unsatisfiedlinkerror – SnapDragon