在今天之前,我使用Eclipse 3.8与Sequoyah插件为Android NDK项目。 但是今天,我决定用Eclipse和NDK更新Eclipse到Juno版本。
我非常高兴,然后我看到ADT安装中的Android Native Tools,它将执行像Sequoyah一样的工作,但具有调试功能。
我创建了新的Android项目来测试它。
添加Android Native支持使用Android.mk,.cpp文件创建jni文件夹,与Sequayah一样。 然后,我首先得到解决jni.h。我遇到Sequoyah类似的错误,所以我重建索引并重新启动Eclipse。重新启动后,它不会消失。
我去路径和符号在C/C++属性。 但有一些需要内置的包括。
(NDK PATH)/平台/ Android的8 /弓臂/ usr/include目录 - 有jni.h,log.h等
我tryed增加额外dublicate包括对jni.h,清洁工程,重新启动,重建索引,将.ccp更改为.c,它仍然未解决。我在错误日志中没有错误,但在jni函数编辑器中出现语法错误。Android添加原生支持 - 未解决的jni.h,android/log.h等
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)
已知的Eclipse问题。不会妨碍您编译。 –
尝试这个帖子: [已解决NDK] [1] [1]:http://stackoverflow.com/questions/11504258/how-to-remove-native-support-from-an -android-project-in-eclipse-because-eclipse/28313132#28313132 –