2014-01-11 24 views
0

我的理解是,如果您在Eclipse中导出 - >导出Android应用程序,并遵循密钥存储区和别名的创建,Android应用程序将准备好上传到Google play(它将被签名和zipaligned)。在Eclipse中为Android应用程序签发jar文件

我做以上,然后跑:

jarsigner -verify my_signed.apk 

,并得到如下:

jar verified. 
    Warning: 
    This jar contains entries whose certificate chain is not validated. 

任何想法?当我从市场上下载应用程序时,我得到了“classnotfoundexceptions”,但是当我从Eclipse(AVD或Android上)运行它时,该应用程序工作正常。验证问题是否也是原因?

回答

1

“ClassNotFoundExceptions”很可能是Proguard的结果。换句话说,如果你使用的是proguard,某些类必须保留它们的名字,而不是最终被混淆。

当您从Eclipse运行您的应用程序时,构建的apk文件不会被混淆。

看看这里:http://developer.android.com/tools/help/proguard.html

“的默认proguard.cfg文件试图以支付:一般情况下,但你可能会遇到例外情况,例如ClassNotFoundException的,当时的ProGuard除掉整个班级,你的应用程序调用它发生。”

而且还运行的jarsigner如下:-verify的jarsigner -keystore

0

鼠标右键单击您的项目, 选择“属性”, 选择“Java构建路径”,

请确保您有在“库”选项卡检查“外部依赖关系”。

+0

我不认为这是一个选项。在“库”选项卡中:我有Android依赖项 – emily

0

上一次我遇到这个问题时,我发现我使用的是来自不同版本的JDK的keytooljarsigner

确保你没有这样做,你的APK会没事的。

让我知道它是否适用于您。

+0

我只安装了一个JDK:C:\ Program Files \ Java。我看到JDK 1.7。我看到两个版本的JRE – emily

+0

@ emily,你的JRE的版本是什么? – yugidroid

+0

我看jre6和jre7 – emily

相关问题