1

コマンドラインからAndroid用のネイティブコードを構築していますが、実行すると、HelloJniサンプルのコードを使用してimcd <project> ndk-buildが出力され、サンプルをインポートしてコンパイルすると、すべて正常に動作します。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)

アプリケーション.mk

APP_ABI := armeabi

みんなとギャルの助けをどうもありがとうございました!!

更新 1: プロジェクトを更新し、ndk-build を再度実行して動作させましたが、実行時に UnsatisfiedLinkError 例外を受け取りました。エミュレーターとして BlueStack を使用しています。

ここに画像の説明を入力

4

2 に答える 2

2

入れてみてください

JNIEXPORT

あなたの前で

Java_com_ndktest2_MainActivity_stringFromJNI

宣言。

また、次の SO の質問が問題に関連している可能性があります。

Android-NDK「java.lang.UnsatisfiedLinkError」</a>

java.lang.UnsatisfiedLinkError

お役に立てれば

于 2013-05-27T21:04:03.777 に答える