SherlockActionBar:导出签名apk,然后Eclipse崩溃:(

时间:2013-02-18 17:56:51

标签: android eclipse ubuntu actionbarsherlock

今天我测试了我的新Android应用程序..

我使用SherlockActionBar。

导入为/库

我的操作系统是Ubuntu 12.10 64bit ..

我可以从Eclipse构建.apk,应用程序在我的Android 2.3.3(移动设备)和Android 4.0(平板电脑)上运行。

但是当我尝试:Android tools -> Export signed application package时, 然后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 个答案:

答案 0 :(得分:19)

您可能想要检查项目中的一些事项。

  • 您的 project.properties 文件以Android API14为目标,但您的清单以API15为目标。这些应该是相同的
  • Sherlock ActionBar仅适用于API7 +。这实际上可能是你的问题。尝试将android:minSdkVersion="4"更改为android:minSdkVersion="7"
    • 显然这不会允许Android 2.1之前的任何内容,但你仍然会瞄准近100%的生态系统。

如果这不起作用,我也遇到了很多麻烦,导出包解决方案也相当随意。

我的一般解决方案是禁用自动构建,清理它然后手动构建库项目。

例如

  • 项目菜单
  • 取消选中自动构建
  • 然后项目&gt;的清洁...
  • 在此窗口中,取消选中立即开始构建
  • 选择清除所有项目,然后点击确定
  • 选择您的 Sherlock ActionBar 项目
  • 执行项目&gt; 构建项目(NOT Build All)。
    • 这将只构建这一个库
    • 对您所包含的任何图书馆项目执行此操作。
  • 单击“立即”,将项目导出为已签名的APK。

这通常对我有用,并且会阻止很多无法解释的出口问题。

答案 1 :(得分:0)

对于使用Mac的任何人,请查看以下问题:Exporting APK from eclipse (ADT) silently crashes

基本上,禁用自动构建