Android添加本机支持 – 未解决的jni.h,android/log.h等

 2023-01-20    281  

问题描述

在今天之前,我将Eclipse 3.8与 sequoyah插件用于Android NDK项目.
但是今天,我决定将Eclipse用SDK和NDK释放到Juno.
我很高兴,然后我在ADT安装中看到 Android Native Tools ,它将像Sequoyah一样做相同的工作,但是具有调试功能.
我创建了新的Android项目来测试它.
添加Android Native Support使用Android.mk,.cpp文件创建JNI文件夹,与Squayah一样.
然后,我首先未解决 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

Android添加本机支持 – 未解决的jni.h,android/log.h等

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:\Android\android-ndk-r8b.
项目编译没有错误.
但是Eclipse说:” Unresolved inclusion: <jni.h>

已解决:

NDK Project->New->Folder->Advanced->Link to alternate location(Linked Folder)
例如,浏览路径():C:\Android\android-ndk-r8b\platforms\android-8\arch-arm\usr\include

其他推荐答案

您可以通过选择项目

来做到这一点

属性 – > c/c ++常规 – >预处理程序包括..->条目 – >设置条目 – > CDT用户设置条目

add-> include目录 – >文件系统路径,然后输入include

的路径

ndk/platforms/android-[version]/[arch]/usr/include

其他推荐答案

我经常求解当您移动或重命名项目的工作文件夹时可能发生的类似问题.

  1. 无需任何环境变量,仅在首选项> android> ndk的情况下指向NDK位置.
  2. 在工作区外移动项目.从项目下一个文件/文件夹中删除:

.settings
.classpath
.cproject
.project
project.properties

  1. 重新接口您的项目. Eclipse>新>其他>其他> Android> Android>来自现有代码的Android项目>然后使用您的项目指向文件夹,让Eclipse检测到它,检查”复制项目中的项目”,然后单击OK/NEXT,任何内容.
  2. 清洁项目.
  3. 右键单击项目> Android工具>添加本机支持
  4. 重建,可能重新启动工作空间.

此外,Eclipse 4.3先前忽略的构建系统和用户定义的编译器标志也是如此解决问题.现在,取决于此标志的宏折叠正常.

如果更通用:NDK插件可以正确地适合您的正确定义以及其他需要正常工作的内容,但是您需要从破碎的废话中清理项目,最简单的方法是Reimport Project.

以上所述是小编给大家介绍的Android添加本机支持 – 未解决的jni.h,android/log.h等,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/26187.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。