SherlockActionBar:导出已签名的apk文件后,Eclipse崩溃了 :(

7
今天我完成了我的新Android应用程序的测试。
我使用SherlockActionBar。
将其作为/lib库导入。
我的操作系统是Ubuntu 12.10 64位。
我可以从Eclipse构建.apk文件,该应用程序可以在我的Android 2.3.3(手机)和我的Android 4.0(平板电脑)上运行。
但是,当我尝试使用“Android工具 - >导出签名的应用程序包”时,Eclipse崩溃:(
我收到以下错误消息:(在导出/崩溃之前)
Invalid ZIP archive: /home/voidcode/Ubuntu One/workspace/JakeWharton-ActionBarSherlock-e5c2d1c/library/bin/library.jar

这是在崩溃后我在Eclipse文件夹中找到的错误日志http://paste.ubuntu.com/1677938/

我的AndroidManifest.xml看起来像这样:

<uses-sdk
    android:minSdkVersion="4"
    android:targetSdkVersion="15" />
我的project.properties文件如下所示:
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

# Project target.
target=android-14
android.library.reference.1=../JakeWharton-ActionBarSherlock-e5c2d1c/library
2个回答

19

您可能需要检查项目中的一些内容。

  • 您的project.properties文件目标为Android API14,但清单文件目标为API15。这两者应该相同。
  • Sherlock ActionBar仅适用于API7+。这可能是您遇到的问题。尝试将android:minSdkVersion="4"更改为android:minSdkVersion="7"
    • 显然,这将不允许在Android 2.1之前使用,但您仍将覆盖近100%的生态系统。

如果这样做不起作用,我也遇到过很多麻烦,并且导出包的解决方案相当随机。

我的通用解决方案是禁用自动构建功能,清理并手动构建库项目。

例如

  • 项目菜单下
  • 取消选中自动构建
  • 然后选择项目 > 清理...
  • 在此窗口上,取消选中立即开始构建
  • 选择清理所有项目并单击确定
  • 选择您的Sherlock ActionBar项目
  • 执行项目 > 构建项目(而非构建全部)。
    • 这将仅构建此一个库项目。
    • 对于包含的任何库项目都要执行此操作。
  • 现在,将您的项目导出为已签名的APK文件。

这通常对我有效,并且可以防止许多无法解释的导出问题。


很高兴能够帮忙。如果这是问题的原因,请不要忘记在编码时重新检查“自动构建”。 - Kirk
这种策略对我也起作用了。看起来在重新构建JAR文件时,Eclipse的索引器出现了故障,导致出现“无效的ZIP错误”。 - Valerio Santinelli
@Kirk 哇,这个问题已经导致了很多崩溃,以至于当我尝试“构建项目(不是全部构建)等”时,我预计会出现另一个崩溃,但是没有,完美地解决了。赞美太阳! - wired00
“立即开始构建”在哪里?我尝试过这个选项,但我的项目无法导入Action Bar Sherlock库。谢谢! - Daniel
1
@eyyo 首先你需要取消自动构建选项,才能看到这个选项。不过在导出APK之前,你不需要担心这个问题。 - Kirk

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接