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

来源:http://www.cnblogs.com/zhaoyanjun/archive/2017/11/14/7830997.html
-Advertisement-
Play Games

轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/78265540 本文出自 "【趙彥軍的博客】" 在前面我介紹了插件開發的基本流程 "【Android Studio 插件開發詳解一:入門練手】" "【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 , 歡迎關註


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、Monkey測試原理:Monkey是Android中的一個命令行工具,可以運行在模擬器里或實際設備中。它向系統發送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程式進行壓力測試。Monkey測試是一種為了測試軟體的穩定性、健壯性的快速有效的方法。 二、測試準備 1 ...
  • 1、佈局文件:res/drawable/bg_shadow.xml [java] view plain copy <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/ ...
  • 頭文件 授權 關於通訊錄的授權這裡不再多說了,我在上一篇中有提到:通訊錄授權 訪問通訊錄 跳轉到系統通訊錄 添加代理 代理方法 註:上面兩個選擇回調代理實現一個就可以 相關借鑒:http://www.jb51.net/article/95500.htm ...
  • 總結下幾個常用到的獲取手機許可權,從iOS8以後,獲取手機某種許可權需要在info.plist文件中添加許可權的描述文件 1.通訊錄 頭文件 獲取通訊錄許可權並請求授權 2.相機 頭文件 獲取相機許可權(直接跳相機,在跳到相機時,會提示是否允許訪問相機) 3.相冊 頭文件 獲取相冊許可權(直接跳相冊,在跳到相冊 ...
  • 為什麼要對Android中的圖片進行採樣縮放呢? 是為了更加高效的載入Bitmap。假設通過imageView來顯示圖片,很多時候ImageView並沒有圖片的原始尺寸那麼大,這時候把整張圖片載入進來後再設給ImageView是沒有必要的,因為ImagView並沒有辦法顯示原始的圖片。 所以我們可以 ...
  • “移動警務通”綜合系統為公安行業提供一種高效的移動警務應用解決方案,適用於交警、巡警、刑警、治安警等各類警務人員,利用移動網路,通過身份證拍照識別軟體接入警務通後臺管理系統和警務通呼叫中心(110指揮調度中心/便民報警處理中心)系統,構成新一代立體的公安辦公網路。目前身份證拍照識別、車牌拍照識別技術 ...
  • 在管理工具里打開Internet 信息服務(IIS)管理器。然後選擇需要配置的網站。 右側的界面中會顯示該網站的所有功能配置,我們選擇並點擊進入“MIME類型” 在左側的操作區選擇點擊“添加”MIME。 在彈出的添加視窗里的文件擴展名輸入:APK 在MIME類型輸入:application/vnd. ...
  • 微信分享前提: 1.需要成功在微信開發者平臺註冊了賬號, 並取的對應的 appkey appSecret。 2. 針對iOS9 添加了微信的白名單,以及設置了 scheme url 。 這都可以參照上面的鏈接,進行設置好。 3. 分享不跳轉的時候原因總結, 具體方法如下: 1. 首先檢查下是否有向微 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...