在Android 5.0上签名APK崩溃

时间:2015-01-24 14:16:37

标签: android android-5.0-lollipop android-appcompat android-actionbaractivity

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

在我宣布的AndroidManifest.xml中:

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

我的基本活动扩展 android.support.v7.app.ActionBarActivity 。这是我在5.0上运行时在logcat中看到的错误:

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.access$800(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)

除了签名之外,还有什么可能导致这种情况或直接运行与安装有什么区别?

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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