天天看點

Android Studio 插件開發詳解四:填坑

轉載請标明出處:http://blog.csdn.net/zhaoyanjun6/article/details/78265540

本文出自【趙彥軍的部落格】

在前面我介紹了插件開發的基本流程

【Android Studio 插件開發詳解一:入門練手】

【Android Studio 插件開發詳解二:工具類】

【Android Studio 插件開發詳解三:翻譯插件實戰】

在經曆的前面的3篇文章,我相信大家都可以掌握Android 插件工具的開發了,開發完插件以後,我們需要将插件上傳至插件市場,然後别人就可以通過插件市場安裝我們的插件了。在我做插件上傳至市場的過程中,遇到了很多坑,今天就來梳理一下,把遇到的坑都填平。

插件打包

比較簡單,直接在頂部主菜單欄中選擇 Build | Prepare Plugin Module XXX For Deployment 即可。

将打好的 xxx.jar 包上傳至市場 https://plugins.jetbrains.com/ , 上傳的具體細節比較簡單,這裡省略。上傳成功後,需要2個工作日來稽核,2天内就能收到 jetbrains 官方發來的郵件,告訴你稽核結果。

在插件的開發項目中,有一個很重要的檔案 plugin.xml

這個檔案很重要,裡面有很多細節需要注意,一不小心,就可能上傳不成功,或者稽核不通過。

坑一 (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>
           

這裡需要注意兩個問題

1、description 标簽裡面不能隻寫中文,也要寫英文。為了簡單,我們直接寫英文好了,中文就不寫了。

2、description 、change-notes 标簽裡面不能有

<em>most HTML tags may be used</em>

這樣的預設文字,應該把預設文字删掉。

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