zoukankan      html  css  js  c++  java
  • 使用NDK编译含JNI的Android项目常见问题解决方案

    有时候,自己下载的或者拷贝过来的JNI项目出现莫名错误,通常是找不到头文件,可能解决方案如下:

    Removing the C nature:

    The only way I could find to reliably removed the C nature from the project was by hand editing Eclipse's .project file for the project.

    1. Close the Eclipse project (e.g. by quitting Eclipse).

    2. Open the .project file in a text or xml editor. There will be at least 2 <buildCommand> nodes that need to be removed. Remove the <buildCommand> node with name org.eclipse.cdt.managedbuilder.core.genmakebuilder and all its children, and the <buildCommand> node with name org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder and its children. Finally, remove the lines:

      <nature>org.eclipse.cdt.core.cnature</nature> <nature>org.eclipse.cdt.core.ccnature</nature> <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>

    3. Completely remove the .cproject file.

    Adding back the Android Native nature

    Reopen the project in Eclipse. Then right-click on the project in the Project Explorer, and from the "Android Tools" contextual menu, choose "Add Native Support...".

     
    Android JNI项目提示“Unresolved inclusion: <jni.h>”可能的其他解决方案:
    1. Paths and Symbols中路径不正确,考虑修改Android.MK文件内容,比如增加空行等(注意Android.MK文件中不需要有LOCAL_C_INCLUDES字段 ,系统会根据LOCAL_SRC_FILES自动添加需要的头文件,否则头文件将出现二义性),重新编译一次项目,Android.MK文件中LOCAL_SRC_FILES所依赖的头文件将会在Project Properties -> C/C++ General -> Paths and Symbols中被自动添加;
    2. string.h、jni.h等C头文件“Unresolved inclusion”,考虑: NDK Project -> New -> Folder -> Advanced -> Link to alternate location(Linked Folder),添加:D:ADTandroid-ndk-r9dplatformsandroid-18arch-armusrinclude;
    3. 考虑:properties--->C/C++ General,关闭Code Analysis功能,解决大部分错误;
  • 相关阅读:
    判断回溯法中的标记数组vis在回溯的时候是否要取消标记?
    Linux多线程开发I
    答题小程序开发
    答题活动小程序
    今天来谈谈答题小程序的上下游生态
    挑战答题小程序V2.0
    可以免费出题的答题小程序
    挑战答题小程序上线了
    通过小程序反编译来谈谈小程序的分包加载机制?
    本文介绍下答题小程序V6.0
  • 原文地址:https://www.cnblogs.com/wentfar/p/4326470.html
Copyright © 2011-2022 走看看