我在android ndk中尝试简单的添加程序。但我得到以下异常 -
java.lang.exceptionininitializererror
Java文件 -
public class MainActivity extends Activity {
private native void MyMethod(int a,int b);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyMethod(4,5);
}
static {
System.loadLibrary("native"); // here i'm getting exception
}
}
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_LDLIBS := -llog
LOCAL_MODULE := native
LOCAL_SRC_FILES := native.c
include $(BUILD_STATIC_LIBRARY)
native.c
#include <jni.h>
#include <string.h>
#include <android/log.h>
#define DEBUG_TAG "NDKSetupActivity"
void Java_com_example_additionndk_MainActivity_MyMethod(JNIEnv * env, jobject this, jint a,jint b)
{
jint c=a+b;
__android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "addition: %d", c);
}
答案 0 :(得分:0)
运行示例ndk(hello-jni)时遇到此错误。这是因为android sdk版本不兼容(示例的默认值为1.5)。尝试切换兼容的sdk和modifiy清单。 另一种情况是你没有将.c构建到.so。使用cygwin64中的ndk-build。