Android 添加原生支持 - 未解决的 jni.h、android/log.h 等 [英] Android Add Native support - unresolved jni.h, android/log.h etc

查看:13
本文介绍了Android 添加原生支持 - 未解决的 jni.h、android/log.h 等的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在今天之前,我使用带有 Sequoyah 插件 的 Eclipse 3.8 用于 Android NDK 项目.但是今天我决定使用 SDK 和 NDK 将 Eclipse 更新到 Juno 版本.
我很高兴在 ADT 安装中看到 Android Native Tools,它可以像 Sequoyah 一样完成相同的工作,但具有调试功能.
我创建了新的 Android 项目来测试它.
添加 Android Native Support 使用 Android.mk、.cpp 文件创建 jni 文件夹,与 Sequayah 所做的相同.然后我首先无法解决 jni.h.我在 Sequoyah 上遇到了类似的错误,所以我重建索引并重新启动 Eclipse.重启后它并没有消失.
我在 C/C++ 属性中转到 Paths And Symbols.但是有所有需要的内置包含.
(NDK PATH)/platforms/android-8/arch-arm/usr/include - 有jni.h、log.h等
我尝试向 jni.h 添加额外的重复包含,清理项目,重新启动,重建索引,将 .ccp 更改为 .c,它仍未解决.我在错误日志中没有错误,但在 jni 函数的编辑器中出现语法错误.

Before today i use Eclipse 3.8 with Sequoyah plugin for Android NDK project. But today i decide to freshen Eclipse to Juno release with SDK and NDK.
I was very happy then i see Android Native Tools in ADT installation, which will do the same job like Sequoyah, but with debug feature.
I created new Android Project to test it.
Adding Android Native Support create jni folder with Android.mk, .cpp file, well same that Sequayah do. Then i get first unresolved to jni.h. I get similar bug with Sequoyah, so i rebuild index and restart Eclipse. After restart it not disappeared.
I go to Paths And Symbols at C/C++ properties. But there are all that needed built-in includes.
(NDK PATH)/platforms/android-8/arch-arm/usr/include - there are jni.h, log.h etc.
I tryed to add extra dublicate includes to jni.h, clean project, restart, rebuild index, change .ccp to .c, it stays unresolved. I got no errors in error log, but syntax errors in editor on jni functions.

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)

推荐答案

我试过 android-ndk-r8b 在我的 PATH 变量中带有 C:Androidandroid-ndk-r8b.项目编译无误.
但是 eclipse 说" 未解决的包含:<jni.h>

I've tried android-ndk-r8b with C:Androidandroid-ndk-r8b in my PATH variable. Project compiled without error.
However eclipse "says" that Unresolved inclusion: <jni.h>

解决了:

NDK 项目->新建->文件夹->高级->链接到备用位置(链接文件夹)浏览路径(例如):C:Androidandroid-ndk-r8bplatformsandroid-8arch-armusrinclude

这篇关于Android 添加原生支持 - 未解决的 jni.h、android/log.h 等的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆