Android Studio插件开发踩得坑

1、Plugin 'Plugin display name here' is incompatible with this installation

写好插件后,导出插件到本地,然后使用Android Studio安装插件,提示“Plugin 'Plugin display name here' is incompatible with this installation”,意思是版本不兼容;解决办法是打开插件工程的plugin.xml文件,找到

<!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html for description -->
<!--这句话的意思是最低支持的ide版本,参见上面链接提供的版本对应关系,android studio1.3的版本ide版本是141,那我们就以141为最低的支持版本-->
<idea-version since-build="141.0"/>

这行代码是来设置插件所支持的最低ide版本的,看注释可以知道在页面http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html上可以查看版本对应关系,如:android studio1.3的ide版本是141,所以若我们想最低支持的Android Studio版本是1.3的话,设置此处的ide版本为141即可。

2、java.lang.NullPointerException

 at com.intellij.ide.SystemHealthMonitor.getActionName

写好插件,导出插件到本地,然后使用Android Studio安装插件,提示“java.lang.NullPointerException at com.intellij.ide.SystemHealthMonitor.getActionName”,从参考链接可知,具体原因不明,但解决办法是,将所有的Action及其他Java文件都放到包下,而不是直接放在src目录下。

3、classnotfoundexception: gherkin.deps.com.google.gson......

写好插件,导出插件到本地,然后使用Android Studio安装插件,提示classnotfoundexception: gherkin.deps.com.google.gson......郁闷了很久,因为我引用了com.google.gson包,但是gherkin.deps.com.google.gson是什么包,一直以为是编译或导入的时候ide自己给加上的呢,搞了好久,才发现,这是开发插件的ide plugform sdk中自带的gson包,代码中有一个地方引用了这个包下的类(实际应该引用com.google.gson包下的,当时写错了),然而,Android Studio貌似没有提供gherkin.deps.com.google.gson这个包,所以会一直提示找不到这个包,最终导致插件安装异常。最后把插件工程中对gherkin.deps.com.google.gson包的引用删除,替换为com.google.gson包下的引用,重新编译导出安装,成功。

猜你喜欢

转载自blog.csdn.net/super_spy/article/details/80036727