Android Studio 插件开发详解四:填坑

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78265540
本文出自【赵彦军的博客】html

在前面我介绍了插件开发的基本流程git

【Android Studio 插件开发详解一:入门练手】github

【Android Studio 插件开发详解二:工具类】微信

【Android Studio 插件开发详解三:翻译插件实战】异步

在经历的前面的3篇文章,我相信你们均可以掌握Android 插件工具的开发了,开发完插件之后,咱们须要将插件上传至插件市场,而后别人就能够经过插件市场安装咱们的插件了。在我作插件上传至市场的过程当中,遇到了不少坑,今天就来梳理一下,把遇到的坑都填平。工具

插件打包

比较简单,直接在顶部主菜单栏中选择 Build | Prepare Plugin Module XXX For Deployment 便可。网站

将打好的 xxx.jar 包上传至市场 https://plugins.jetbrains.com/ , 上传的具体细节比较简单,这里省略。上传成功后,须要2个工做日来审核,2天内就能收到 jetbrains 官方发来的邮件,告诉你审核结果。ui

在插件的开发项目中,有一个很重要的文件 plugin.xmlurl

这里写图片描述

这个文件很重要,里面有不少细节须要注意,一不当心,就可能上传不成功,或者审核不经过。.net

坑一 (id不能重复)

plugin.xml 里面有个id 是这个插件的惟一标识,其至关于Android里面的包名,惟一存在,不能重复。若是跟市场上的插件有重复,上传的时候将会报错,以下图所示:

这里写图片描述

坑二(插件描述信息要完整)

不就后我就收到一封邮件,以下:

这里写图片描述

意思就是审核不经过,缘由是在 plugin描述中添加英文描述,而且移除标准的默认文字。那么 plugin 的描述在哪里设置呢,其实也很简单,就是 plugin.xml 文件。

那么为何会审核不经过呢,我原来的是这样写的

<id>com.zhaoyanjun.AndroidTranslate</id>
  <name>AndroidTranslate</name>
  <version>1.0.0</version>
  <vendor email="362299465.com" url="http://blog.csdn.net/zhaoyanjun6.com">赵彦军博客</vendor>

  <description><![CDATA[
      Android资源中英文翻译<br>
      Android资源英文异步翻译<br>
      <em>most HTML tags may be used</em>
    ]]></description>

  <change-notes><![CDATA[
      Android 资源翻译 .<br>
      <em>most HTML tags may be used</em>
    ]]>
  </change-notes>

这里须要注意两个问题

一、description 标签里面不能只写中文,也要写英文。为了简单,咱们直接写英文好了,中文就不写了。

二、description 、change-notes 标签里面不能有 <em>most HTML tags may be used</em> 这样的默认文字,应该把默认文字删掉。

三、description 标签是这个插件的功能描述。change-notes 标签是这个插件的版本更新的一个日志记录,个人写的不规范。

通过修改,我改为这样

<description><![CDATA[
    resource translation for Android Studio
    <li>1. Choose the word you want translate.</li>
    <li>2. Press Command + Q.</li>
    ]]></description>

  <change-notes><![CDATA[
     <li>1.2 : New: fix some bugs.</li>
     <li>1.1 : Fixed: Long click bug.</li>
     <li>1.0 : init </li>
    ]]>
  </change-notes>

坑三(插件支持的产品要说明)

通过前面两个坑,个人插件终于审核经过了,能够在 Android Studio 市场没有搜到。只能在 IntelliJ IDEA 产品中搜到。

还记得plugin.xml中注释的那段代码么:

<!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
       on how to target different products -->
  <!-- uncomment to enable plugin in all products
  <depends>com.intellij.modules.lang</depends>
  -->

这是指定你的插件发布到jetbrains plugins仓库的产品类型,jetbrains公司有不少种产品,而且都支持插件开发,如Intellij Idea, PyCharm,WebStorm, Android Studio等等,若是你上面那段代码注释了,那么你在上面网站上传的时候会默认上传到Intellij Idea的产品仓库,到时候只能在 Intellij Idea 的仓库中搜到你的插件,Android Studio 是没有的。若是你想在 Android Studio 的插件市场搜到你的插件,你须要将上面的注释去掉。

修改完后,个人 plugin.xml 中是这样的

<!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
       on how to target different products -->
  <!-- uncomment to enable plugin in all products-->
  
  <depends>com.intellij.modules.lang</depends>

总结

在发布的时候,大概会遇到上面3个坑,把这些坑填平后,再次打包插件,更新到市场上。你能够看到这个插件支持的产品列表,以下图

这里写图片描述

这里写图片描述

能够看到咱们发布的插件已经支持 Android Studio 了。

本系列文章的源码都上传至 : https://github.com/zyj1609wz/AndroidPluginTranslate


我的微信号:zhaoyanjun125 , 欢迎关注

相关文章
相关标签/搜索