`
scliu0718
  • 浏览: 52313 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

JDK1.7签名APK异常

 
阅读更多
1.这两天搞ant打apk的,到签名apk的时候发现明明签名成功,但是安装时死活提示无数字证书。
同事的机器上签名后可以正常安装,但是在我机器上却不行,最后发现同事JDK版本1.6的,我是1.7的。

最后在网上查了资料解决的办法,在我们签名的时候,在jarsigner命令后增加两个参数:

-digestalg SHA1
-sigalg MD5withRSA


使用Ant如下:
<target name="jarsigner" depends="package" >
    <exec executable="${jarsigner}" failonerror="true" >
        <arg value="-verbose" />
        <arg value="-digestalg" />
        <arg value="SHA1" />
        <arg value="-sigalg" />
        <arg value="MD5withRSA" />
        <arg value="-keystore" />
        <arg value="${key.store}" />
        <arg value="-storepass" />
        <arg value="${key.store.password}" />
        <arg value="-keypass" />
        <arg value="${key.alias.password}" />
        <arg value="-signedjar" />
        <arg value="${out-signed-package-ospath}" />
        <arg value="${out-unsigned-package-ospath}" />
        <arg value="${key.alias}" />
    </exec>
</target>

2. 后在打包的时候发现在打手动编译的的class后,打dex文件后会发现这个dex里少一些class文件,百思不得其解,

eclipse自动编译的打包正常,为什么执行自己的compile就打不进去了呢?而且还进行过多方对比未发现异常。

后同事打印日志并注意到日志中有很多“bad class file magic (cafebabe) or version (0033.0000)”的提示。后来在网上

看到有同行也碰到如此问题,是jdk版本原因,jdk1.7编译后会出现,如果你碰到这种情况的话换成jdk1.6就ok了。


3. 另外,注意:

我用Ant打apk的,打完后运行时会因为NotFoundClassException,跟踪后发现打包路径直接写成文件夹不行。如下:

<arg value="${outdir-classes-ospath}" />改为<arg value="${outdir-classes-ospath}/*" />,否则可能会在打dex包的时候class文件并没有真正的打进去。

<!-- 将.class文件转化成.dex文件 -->
<target name="dex" depends="proguard">
	<echo>Converting compiled files and external libraries into a .dex file...</echo>
	<exec executable="${dx}" failonerror="true">
		<arg value="--dex" />
		<arg value="--verbose" />
		<!-- 输出文件 -->
		<arg value="--output=${dex-ospath}" />
		<!-- 要生成.dex文件的源classes和libraries -->
		<arg value="${outdir-classes-ospath}/*" /><!-- 注:${outdir-classes-ospath}"则运行时会抛NotFoundClassException,疑似目录下的class打不进dex -->
		<arg value="${external-lib-ospath}" />
	</exec>
</target>


分享到:
评论

相关推荐

    ADT-24.0.2下载兼容jdk1.8和jdk1.7

    5. **发布应用**:当项目完成并经过测试后,ADT还支持生成APK文件,进行签名和优化,以便将应用发布到Google Play或其他Android市场。 **注意事项** - 确保Eclipse和ADT版本匹配,避免可能出现的兼容性问题。 - ...

    ApkIDE最新3.5.0少月增强版安卓APP反编译工具

    已经解决Unity3d和coco2dx平台下安卓软件无法反编问题,同时解决JDK1.7以上JarSigner签名和dex2jar失败问题,所以现在JDK版本没有限制,但是如果你自行更新dex2jar(发布Apk改之理时,对dex2jar一个配置文件进行了...

    apk自动签名工具

    2. **签名APK**:使用私钥对APK进行签名,生成一个数字签名。 3. **验证签名**:使用公钥,设备可以验证APK的签名,确保未被篡改。 **三、自动签名工具** "apk自动签名工具"旨在简化上述手动签名流程,提高效率。...

    jarsigner重新签名apk无法安装的解决方法

    在某些情况下,如果不明确指定这些参数,JDK 1.7可能会选择与旧版本JDK不兼容的算法,导致签名后的APK无法在Android设备上识别。 为了解决这个问题,我们需要在`jarsigner`命令行中添加上述两个参数。下面是一个...

    APK重新签名.doc

    因此,当需要替换签名,例如从调试版本转为发布版本,或者需要在不同设备上安装同一应用时,就需要重新签名APK。 重新签名APK的基本步骤如下: 1. 删除原有签名:APK中的签名文件位于`META-INF`目录下,包括`...

    robotium apk重签名

    在例子中,使用了Eclipse默认的debug keystore,路径为`E:\ME\SOFT\android-sdk-windows\.android\debug.keystore`,密码均为`android`,待签名APK路径为`E:\ME\Sign\a.apk`,key别名为`androiddebugkey`。...

    ApkIDE——安卓反编译

    1、增加对apktool2.x版本的支持(目前apktool2.x仍然是测试版本,此版要求JDK1.7或以上),同时保留对1.5.2版的支持,二者可以一键切换(菜单「工具」-「配置与选项」-「选项」-「ApkTool版本切换」)。 2、增加apk...

    APk免杀加密器v1.2官方免费安装版

    APk免杀加密器是一款专业的安卓APK加密软件,APK加密后可以有效的防止被反编译,破解,恶意修改等等,并且加密后不会报毒。界面友好,功能非常强大。 特色功能 1、界面简洁,一键拖放...使用本软件必须安装JDK 1.7版本

    apk手动重签名方法

    使用robotium 自动测试工具时,测试的apk必须要重签名,一般使都使用re-sign.jar ,但是jdk为1.7时该方法行不通。使用手动方式无论在1.6还是1.7版本下,不需要任何工具轻松搞定。

    APK改之理ApkIDE3.2官网绿色版.rar

    在XP系统下使用需要先安装.NET2.0,JDK版本需要V1.7以上。如何向Apk改之理 添加或删除参考文档?请按照以下步骤:1、添加:将要添加为参考的文档、快捷方式放到Apk改之理安装目录下的 Reference 文件夹下。2、删除...

    Android签名机制介绍:生成keystore、签名、查看签名信息等方法

    需要注意的是,从JDK 1.7开始,对APK签名时可能还需要指定摘要算法和签名算法参数。如果不指定,可能会遇到`Failure[INSTALL_PARSE_FAILED_NO_CERTIFICATES]`的错误。因此,如果使用JDK 1.7或更高版本,可能需要使用...

    java反编译class源码-java-n-IDE-for-Android:java-n-IDE-for-Android

    java反编译class源码Android 上的 Java N-IDE Java 编译器。 概述 这个项目是为了帮助社区在android上学习...邮编签名者 Apk 生成器 如何构建这个源 需要 Android Studio 3.0 及以上 Android NDK r12b(较新版本不起作

    《 iOS-checkIPA 》ipa 文件信息检查工具

    1、环境要求:Java JDK1.7及以上 2、使用方法:桌面双击启动 或命令行启动 benjamin&gt; java -jar /iOS-checkIPA.jar 3、GUI界面启动后,点击获取IPA信息弹出文件选择弹窗选择待检查的ipa文件信息,点击确认即可 4、...

    SmaliInjector20170719

    已安装 jdk1.7 或 jdk1.8 已安装 Android Studio 已安装 pypy3 或者 python,pypy3 下载地址:http://download.csdn.net/detail/jizhitp/9902691 步骤: =======================================================...

    apktool所有文件集合+步骤

    1. **安装环境**:确保你的系统已经安装了Java 1.7(JDK 7),因为根据描述,这个版本的JDK是必需的。 2. **解压文件**:将压缩包解压到一个方便的位置,并确保你有权限访问其中的所有文件。 3. **反编译APK**:...

    GradlePluginUserGuide 谷歌官方中文翻译文档,完整8章内容

    - **使用JDK 1.7版本的sourceCompatibility**:指导如何设置sourceCompatibility为1.7以确保代码兼容性。 #### 十四、文档来源与参考资料 - **官方原文地址**:...

    精通ANDROID 3(中文版)1/2

    1.7 本书的示例项目  1.8 小结  第2章 设置开发环境  2.1 设置环境  2.1.1 下载JDK 6  2.1.2 下载Eclipse 3.6  2.1.3 下载Android SDK  2.1.4 命令行窗口  2.1.5 安装ADT  2.2 了解基本组件  ...

Global site tag (gtag.js) - Google Analytics