使用maven构建android 的apk包并自动签名

  次阅读 作者:智能小宝 来源:互联网 2016-01-13 21:43 我要评论(0)

最近使用maven自动构建android的签名apk包(配合hudson),遇到几个问题跟大家分享下:

1、使用maven-android-plugin可以很容易实现自动构建,但基于命令行的方式有别与eclipse的打包方式

2、编译时出现非法字符的错误

*.java:[1,0] 非法字符: \65279

说明某些文件采用UTF-8的时候写入了BOM的头信息,eclipse采用jdt会自动处理这些头信息但maven直接调用javac没有那么智能了,首先找找那些文件

#查找BOM

find -type f -name "*.java"|while read file;do [ "`head -c3 -- "$file"`" == $'\xef\xbb\xbf' ] && echo "found BOM in: $file";done

使用vim自动去除bom

去掉utf-8 BOM

:set nobomb

3、打包是出现无法签名的情况

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-jarsigner-plugin</artifactId>

<version>1.2</version>

<executions>

<execution>

<id>signing</id>

<goals>

<goal>sign</goal>

</goals>

<phase>package</phase>

<inherited>true</inherited>

<configuration>

<archiveDirectory></archiveDirectory>

<includes>

<include>target/${artifactId}.apk</include>

</includes>

<keystore>${keyFilePath}</keystore>

<storepass>${storePassword}</storepass>

<keypass>${keyPassword}</keypass>

<alias>${keyAlias}</alias>

</configuration>

</execution>

</executions>

</plugin>

alias必须与生成签名文件时的条目一致

4、签名之前必须保证apk生成的时候没有使用debug签名,不然会提示

jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size (expected 15331 but got 15809 bytes)

必须定义maven的android插件信息

<configuration>

<sdk>

<path>${env.ANDROID_HOME}</path>

<platform>7</platform>

</sdk>

<sign>

<debug>false</debug>

</sign>

<deleteConflictingFiles>true</deleteConflictingFiles>

</configuration>

5、至此使用一条命令 mvn clean package就可以自动编译打包了

下面是完整的配置

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...