相关疑难解决方法(0)

如何在Android中解决NDK中的java.lang.UnsatisfiedLinkError?

我是android中的ndk开发新手.我已经完成了ndk android的文件系统.在这里,解释我做了什么.1)我创建了一个名为"jni"的文件夹,然后创建了名为Android.mk和ndkfoo.c的2个文件.

在Android.mk中

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

# Here we give our module name and source file(s)
LOCAL_MODULE    := ndkfoo
LOCAL_SRC_FILES := ndkfoo.c

include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)

在ndkfoo.c中

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

jstring Java_com_mindtherobot_samples_ndkfoo_NdkFooActivity_invokeNativeFunction(JNIEnv* env, jobject javaThis) {
 return (*env)->NewStringUTF(env, "Hello from native code!");
}
Run Code Online (Sandbox Code Playgroud)

然后我创建了NdkFooActivity类,我写了

// load the library - name matches jni/Android.mk
 static {
  System.loadLibrary("ndkfoo");
 }
Run Code Online (Sandbox Code Playgroud)

但是现在当我在xp中使用cygwin构建它成功创建.so文件然后我作为android应用程序运行.它给了我LOGCAT中的java.lang.UnsatisfiedLinkError.

所以,请让我知道我错在哪里.

提前致谢,

android-ndk

25
推荐指数
4
解决办法
5万
查看次数

标签 统计

android-ndk ×1