我从命令行通过cd <project> ndk-build
构建android的本机代码,但是当我运行它时,使用HelloJni示例中的代码输出nothing can be done for 'all'
即时消息,如果我导入示例并编译它,一切正常
活性
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Log.i("DEBUG", stringFromJNI());
setContentView(new MySurfaceView(this));
}
public native String stringFromJNI();
static
{
System.loadLibrary("nativemain");
}
}
nativemain.c
#include <string.h>
#include <jni.h>
jstring Java_com_ndktest2_MainActivity_stringFromJNI( JNIEnv* env,
jobject thiz )
{
return (*env)->NewStringUTF(env, "Hello from JNI !");
}
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := nativemain
LOCAL_SRC_FILES := nativemain.c
include $(BUILD_SHARED_LIBRARY)
Application.mk
APP_ABI := armeabi
非常感谢你们和gals帮助!!
更新1:我刷新了项目并再次运行ndk-build并运行,但我在运行时收到了UnsatisfiedLinkError异常。我使用BlueStack作为我的模拟器。
答案 0 :(得分:2)
尝试添加
JNIEXPORT
在你面前
Java_com_ndktest2_MainActivity_stringFromJNI
声明。
以下SO问题也可能与您的问题有关:
Android-NDK “java.lang.UnsatisfiedLinkError”
java.lang.UnsatisfiedLinkError
希望这有帮助
答案 1 :(得分:1)
尝试删除“Application.mk”,因为单个ndk模块应用程序不需要(并且hello-jni没有)