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 , 歡迎關注

相關文章
相關標籤/搜索