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

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

    • 插件打包
    • 坑一 id不能重复
    • 坑二插件描述信息要完整
    • 坑三插件支持的产品要说明
    • 总结

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

【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 , 欢迎关注

时间: 2024-11-08 21:49:35

Android Studio 插件开发详解四:填坑的相关文章

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

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78112003 本文出自[赵彦军的博客] 一:概述 相信大家在使用Android Studio的时候,或多或少的会使用一些插件,适当的配合插件可以帮助我们提升一定的开发效率,更加快乐.例如: https://github.com/zzz40500/GsonFormat 可以帮助我们从Gson转化为实体类 https://github.com/avast/android-butter

Android Studio 插件开发详解三:翻译插件实战

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78113868 本文出自[赵彦军的博客] 一:概述 如果不了解插件开发基础的同学可以先看, Android Studio 插件开发详解一:入门练手 Android Studio 插件开发详解二:工具类 在上面的两篇文章,讲解了插件开发的基础,今天就来一个优点难度的项目,插件的名字叫 AndroidPluginTranslate , 顾名思义就是可以翻译文案的插件,废话不多说,先看最

Android Studio 版本号详解

Android Studio 版本号详解 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/69951965 本文出自[赵彦军的博客] android { compileSdkVersion 25 //是指本地开发环境编译是时的 Android 版本 buildToolsVersion "25.0.2" //你构建工具的版本,其中包括了打包工具aapt.dx等等 defaultConfig { applicationId

百度语音识别(Baidu Voice) Android studio版本详解_Android

百度语音识别(Baidu Voice) Android studio版本       已同步更新至个人blog:http://dxjia.cn/2016/02/29/baidu-voice-helper/       最近在一个练手小项目里要用到语音识别,搜索了一下,比较容易集成的就算Baidu voice跟讯飞语音了,baidu提供了直接可以使用的显示控件,而讯飞需要自己实现,另外baidu提供每天5W次的调用频率,对于我来说足够使用啦.所以就选择使用Baidu Voice(控件会有baidu

百度语音识别(Baidu Voice) Android studio版本详解

百度语音识别(Baidu Voice) Android studio版本 已同步更新至个人blog:http://dxjia.cn/2016/02/29/baidu-voice-helper/ 最近在一个练手小项目里要用到语音识别,搜索了一下,比较容易集成的就算Baidu voice跟讯飞语音了,baidu提供了直接可以使用的显示控件,而讯飞需要自己实现,另外baidu提供每天5W次的调用频率,对于我来说足够使用啦.所以就选择使用Baidu Voice(控件会有baidu logo和关键字,所以

Android事件分发详解(四)——事件传递基础示例

MainActivity如下: package com.cn; import android.app.Activity; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnTouchListener; /** * Demo描述: * Andr

《Java和Android开发实战详解》——2.2节构建Java应用程序

2.2 构建Java应用程序Java和Android开发实战详解照第1章介绍安装和设置JDK执行环境后,就可以在Windows操作系统的"命令提示符"窗口或Eclipse IDE开发Java应用程序. 2.2.1 构建第一个Java程序首先,我们使用Windows操作系统下的记事本和"命令提示符"窗口来构建.编译和执行Java应用程序,其基本步骤如下所示: step01使用记事本或其他文本编辑工具构建Java源代码文件,扩展名为.java. step03step02

Android Animation动画详解(二): 组合动画特效

前言     上一篇博客Android Animation动画详解(一): 补间动画 我已经为大家介绍了Android补间动画的四种形式,相信读过该博客的兄弟们一起都了解了.如果你还不了解,那点链接过去研读一番,然后再过来跟着我一起学习如何把简单的动画效果组合在一起,做出比较酷炫的动画特效吧. 一. 动画的续播     如题,大家想想,如果一个页面上包含了许多动画,这些动画要求按顺序播放,即一个动画播放完成后,继续播放另一个动画,使得这些动画具有连贯性.那该如何实现呢? 有开发经验或者是逻辑思维

IOS中Json解析实例方法详解(四种方法)_IOS

作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的json代码格式比较混乱,可以使用此"http://www.bejson.com/"网站来进行JSON格式化校验(点击打开链接).此网站不仅可以检测Json代码中的错误,而且可以以视图形式显示json中的数据内容,很是方便. 从IOS5开始,APPLE提供了对json的原生支持(NSJSONSerialization),但是为了兼容以前的iOS版本,可以使用第三方库来解析Json. 本文将介绍Tou