轉載請標明出處: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
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 , 歡迎關注