使用NDK编译含JNI的Android项目常见问题解决方案
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.
-
Close the Eclipse project (e.g. by quitting Eclipse).
-
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 nameorg.eclipse.cdt.managedbuilder.core.genmakebuilder
and all its children, and the<buildCommand>
node with nameorg.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>
-
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...".
- Paths and Symbols中路径不正确,考虑修改Android.MK文件内容,比如增加空行等(注意Android文件中不需要有LOCAL_C_INCLUDES字段 ,系统会根据LOCAL_SRC_FILES自动添加需要的头文件,否则头文件将出现二义性),重新编译一次项目,Android.MK文件中LOCAL_SRC_FILES所依赖的头文件将会在Project Properties -> C/C++ General -> Paths and Symbols中被自动添加;
- string.h、jni.h等C头文件“Unresolved inclusion”,考虑: NDK Project -> New -> Folder -> Advanced -> Link to alternate location(Linked Folder),添加:D:\ADT\android-ndk-r9d\platforms\android-18\arch-arm\usr\include;
- 考虑:properties--->C/C++ General,关闭Code Analysis功能,解决大部分错误;
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。