今日まで、 AndroidNDKプロジェクト用のSequoyahプラグインでEclipse3.8を使用しています。しかし、今日、私はEclipseをSDKとNDKを使用してJunoリリースに更新することにしました。
私はとても嬉しかったです。ADTインストールでAndroidネイティブツールを見ると、Sequoyahと同じ仕事をしますが、デバッグ機能があります。
テストするために新しいAndroidプロジェクトを作成しました。
Android Native Supportを追加すると、Sequayahと同じように、Android.mk、.cppファイルを使用してjniフォルダーが作成されます。次に、最初にjni.hに未解決になります。Sequoyahでも同様のバグが発生するので、インデックスを再構築してEclipseを再起動します。再起動後、それは消えませんでした。C /C++プロパティのパスとシンボル
に移動します。しかし、必要な組み込みインクルードはすべてあります。
(NDK PATH)/ platforms / android-8 / arch-arm / usr / include -jni.h、log.hなどがあります。jni.hに
重複するインクルードを追加しようとしました。プロジェクトをクリーンアップし、再起動し、インデックスを再構築します。 .ccpを.cに変更すると、未解決のままになります。エラーログにエラーはありませんが、jni関数のエディターで構文エラーが発生しました。
NativeLib.java
package com.aristarhys.glow;
public class NativeLib
{
private static final String NATIVE_LIB = "glow";
static
{
System.loadLibrary(NATIVE_LIB);
}
private NativeLib(){};
public static native void test();
}
glow.h
#ifndef GLOW_H_
#define GLOW_H_
#include <jni.h> //unresolved
//syntax error
JNIEXPORT void JNICALL Java_com_aristarhys_glow_NativeLib_test(JNIEnv* env, jclass cls);
#endif /* GLOW_H_ */
log.h
#ifndef LOG_H_
#define LOG_H_
#include <android/log.h> //unresolved
#define INFO_TAG "[INFO]"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, INFO_TAG, __VA_ARGS__)
#endif /* LOG_H_ */
glow.c
#include "glow.h"
#include "log.h"
//syntax error
JNIEXPORT void JNICALL Java_com_aristarhys_glow_NativeLib_test(JNIEnv* env, jclass cls)
{
LOGI("HI");
}
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := glow
LOCAL_SRC_FILES := glow.c
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)