一. 手工修复ndk环境bug

Eclipse做ndk开发的时候, 经常会遇到编译过去,却报语法错误的问题,比如

①. 头文件不识别

②. 头文件识别了, 类型不识别

针对这一的bug,我们一般按照如下方式可以进行修复

1. 在eclipse中关闭指定Project

mac下显示所有文件

显示:defaults write com.apple.finder AppleShowAllFiles -bool true
隐藏:defaults write com.apple.finder AppleShowAllFiles -bool false

killall Finder (注意首字母大写)

2. 删除相关文件

用其他编辑工具打开该project的.project文件,删除以下内容:

①.删掉org.eclipse.cdt.managedbuilder.core.genmakebuilder开头的

<buildCommand>

<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>

<triggers>clean,full,incremental,</triggers>

<arguments>

........

</arguments>

</buildCommand>

②. 搜索org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder

<buildCommand>

<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>

<triggers>full,incremental,</triggers>

<arguments>

</arguments>

</buildCommand>

③. 删掉如下4项

<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>

④. 删除.cproject文件

3. 在eclipse里打开原来的project, refresh(选中工程F5),然后右键->properties->Android Tools -> Add Native Support

这一问题就可以解决了, 那么我们下面开始编写插件, 将这个过程自动化

二. 插件开发

1. 创建菜单工程

新建plugin工程, 工程类型选择popup menu, 当然你可能需要如下的一些资料

a. 如何创建插件菜单工程 (初级)

http://blog.csdn.net/wangwei_cq/article/details/7736394

b. Eclipse创建多级菜单 (中级)

http://blog.csdn.net/jdzms23/article/details/7276238

c.Eclipse插件菜单深入理解(高级)

http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-menuext/

把objectclass修改成org.eclipse.core.resources.IResource(指代工程关闭之后能看到右键菜单)

org.eclipse.jdt.core.IJavaElement则是java工程项目能看到我们的右键菜单

在dependencies中, 添加相关的包支持, 不然会报错误

恩,该配置的都差不多了,coding...

2. coding

懒得贴代码了,上传github,有兴趣的可以看看

我把打包的工程也一并上传了

插件是org.bingghost.ndkfix

传送门:

https://github.com/bingghost/ndkfix

3. 生成插件安装包

详细安装说明请看我的这篇笔记:

http://www.cnblogs.com/bingghost/p/6114290.html

三. 插件使用

1. 关闭ndk工程

选中指定的ndk工程, 右键, close project

2. 右键->ndk fix->start fix

3. Open Project

4. Refresh Project(快捷键F5)

5. android tools-> add native support

四. 遇到的问题

本来打算把这个插件功能做成全自动化, 我的思路是这样的

自动关闭选中project->ndk配置文件修复->open project->刷新project->add native support

当然是有方法的,但是最后我没有成功(第一步就卡住了), 下面说下我的思路

1. 我们是可以调用Eclipse原有的功能的,通过下面的操作我们查看Eclipse菜单的相关类

按下alt + shift + f2,对着项目鼠标右键,选择close project,弹出如下说明

那么我们就可以用CloseResourceAction来关闭, 我编写了如下代码,

但是并没有执行成功, 我猜测Shell获取的不对, 我网上找了半天的资料也没有找到(放弃了)

// close select project

IShellProvider provider = new IShellProvider() {

@Override

public Shell getShell() {

return Workbench.getInstance().getActiveWorkbenchWindow().getShell();

}

};

CloseResourceAction closeAction = new CloseResourceAction(provider);

closeAction.run();

关于刷新的,我找到一些资料如下

http://www.programcreek.com/java-api-examples/index.php?api=org.eclipse.ui.actions.RefreshAction

当然喜欢折腾的同学,可以把这个插件继续完善, 我懒得折腾了

Eclipse ndk fix插件开发的更多相关文章

  1. WINDOWS系统Eclipse+NDK+Android + OpenCv

    WINDOWS系统Eclipse+NDK+Android + OpenCv 参考文档博客 1 NDK环境搭建 http://jingyan.baidu.com/article/5d6edee22d90 ...

  2. Eclipse NDK 配置,无需安装Cygwin

    Eclipse NDK 配置,不用安装Cygwin 文章转自http://www.cnblogs.com/chenjiajin/archive/2012/04/12/2444188.html 一.关于 ...

  3. 追索权 Eclipse + NDK error: stray &#39;\24&#39; in program

    [size=16px][b][color=#FF0000]追索权 Eclipse + NDK  error: stray '\24' in program[/color][b][/b][/b][/si ...

  4. Eclipse + ndk+ cocos2dx 调试Cocos2dx 程序

    本文是我自己尝试通过eclipse来在windows平台下搭建cocos2dx的过程,期间遇到了一些问题,都是通过网上借鉴别人的博文来解决的,下面也列出来这些参考文献.写下来的目的主要是自己以后要用的 ...

  5. Eclipse NDK 配置

    一.关于NDK:NDK全称:Native Development Kit. 1.NDK是一系列工具的集合. NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java ...

  6. NDK(2)使用eclipse + ndk开发过程演示,含CPU架构编译

    环境linux + eclipse + adt + ndk 1,在ide中配置ndk 下载ndk,在eclipse中配置 2,使用ndk编程 2.1 给项目添加ndk 支持 右键 项目名 --> ...

  7. 用 eclipse ndk 编译 cocos2d-x for Android

    Android 环境搭建不详述,,可以google,,, 我用的coco2dx 是 2.14 ,2.14 用 create_project.py 脚本创建工程,Python环境配置也是很简单,这里了不 ...

  8. Eclipse NDK 配置,不用安装Cygwin

    一.关于NDK:NDK全称:Native Development Kit.1.NDK是一系列工具的集合.NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用 ...

  9. cocos2d-x eclipse + NDK 自动编译配置

    文章来自:http://www.cocos2dres.com/view.asp?id=90 1. 准备工作: android NDK    r8版本 ADT Bundle 下载地址:http://de ...

随机推荐

  1. matplotlib 高级用法实例--共享x轴

    http://localhost:8888/notebooks/duanqs/matplotlib_advanced_example.ipynb 我不会弄呀, 刚才从matplotlib文档里吧示例用 ...

  2. web兼容学习分析笔记-margin 和padding浏览器解析差异

    二.margin 和padding浏览器解析差异 只有默认margin的元素 <body>margin:8px  margin:15px 10px 15px 10px(IE7) <b ...

  3. iOS开发小技巧 - label中的文字添加点击事件

    Label中的文字添加点击事件 GitHub地址:https://github.com/lyb5834/YBAttributeTextTapAction 以前老师讲过类似的功能,自己懒得回头看了,找了 ...

  4. C#-WebForm-Session、Cookie-登录验证(未登录跳至登录界面)、隐藏地址栏传值

    Post 传值(看不见的传值) Get 传值(看得见的传值) Session - 全局变量组 存放位置:服务端 作用:只要里面有内容,那么这个网站中所有的C#端都能访问到这个变量 -- object类 ...

  5. Mysql触发器

    触发器(trigger)作用:监视某种情况,并触发某种操作. 触发器创建语法四要素: 1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/b ...

  6. input placeholder属性 样式修改(颜色,大小,位置)

    placeholder属性 样式修改 <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...

  7. TCP的三次握手(建立连接)和四次挥手(关闭连接)

    参照: http://course.ccniit.com/CSTD/Linux/reference/files/018.PDF http://hi.baidu.com/raycomer/item/94 ...

  8. web前端基础知识-(六)web框架

    一.web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python #coding:ut ...

  9. Java数据结构——平衡二叉树的平衡因子(转自牛客网)

    若向平衡二叉树中插入一个新结点后破坏了平衡二叉树的平衡性.首先要找出插入新结点后失去平衡的最小子树根结点的指针.然后再调整这个子树中有关结点之间的链接关系,使之成为新的平衡子树.当失去平衡的最小子树被 ...

  10. CentOS 7.0安装配置Vsftp服务器

    一.配置防火墙,开启FTP服务器需要的端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop fi ...