zoukankan      html  css  js  c++  java
  • Eclipse ndk fix插件开发

    一. 手工修复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


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







  • 相关阅读:
    String Matching Patterns(字符串匹配模式)
    脚本元素定位实例学习
    vue 实现逻辑分页 以及动态表格自动转行
    vue 打印功能(js)
    vue 打包时使用/deep/ 报错
    vue 去掉后缀名
    VSCode: 提高工作效率的快捷键
    修改 input/textarea 标签属性 placeholder 文本的颜色
    H5超级播放器+FFmpeg实现摄像头在线查看
    Lucene.net常用功能说明
  • 原文地址:https://www.cnblogs.com/bingghost/p/6114301.html
Copyright © 2011-2022 走看看