已签名的 APK 在 android 5.0 上崩溃

Signed APK crashes on android 5.0

我将一个 Android 项目更新为 Android 5.0,当直接从 Genymotion 模拟器中的 Eclipse 运行 时一切正常。但是当我创建一个签名的 APK 并上传它时,它崩溃了。已签名的 APK 适用于 Android 4.0 模拟器,但不适用于 5.0。 AppCompat 库与 Android > 库中的项目链接。

在 AndroidManifest.xml 我已经声明:

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="21" />

我的基地 activity 扩展 android.support。v7.app.ActionBarActivity。这是我在 logcat when 运行 on 5.0:

中看到的错误
FATAL EXCEPTION: main
Process: com.myapp.mypackage, PID: 1414
     java.lang.AbstractMethodError: abstract method "android.support.v7.app.ActionBar ol.a()"
    at ol.b(SourceFile:123)
    at android.support.v7.app.ActionBarActivity.getSupportActionBar(SourceFile:73)
    at com.myapp.mypackage.StartActivity.onCreate(SourceFile:91)
    at android.app.Activity.performCreate(Activity.java:5933)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
    at android.app.ActivityThread.access0(ActivityThread.java:144)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5221)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

什么可能导致这种情况,或者 运行 直接安装和安装(签名除外)之间有什么区别?

非常感谢,感谢您的帮助!

这是三星自定义 android 和 zipalign 的问题。使用 zipalign 时,删除 -z 参数。这个 apk 应该可以用。

  1. 删除 Eclipse 并安装 Android Studio。 Google.
  2. 不再支持 ADT 插件
  3. 您应该始终以最新的 Android 版本为目标(当前最新版本是 22)
  4. 你应该使用最新的v7 appcompat library(目前最新的是22.2.0)
  5. 您应该从 AppCompatActivity
  6. 扩展您的 activity