已签名的 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 应该可以用。
- 删除 Eclipse 并安装
Android Studio
。 Google. 不再支持 ADT 插件
- 您应该始终以最新的 Android 版本为目标(当前最新版本是 22)
- 你应该使用最新的
v7 appcompat library
(目前最新的是22.2.0)
- 您应该从
AppCompatActivity
扩展您的 activity
我将一个 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 应该可以用。
- 删除 Eclipse 并安装
Android Studio
。 Google. 不再支持 ADT 插件
- 您应该始终以最新的 Android 版本为目标(当前最新版本是 22)
- 你应该使用最新的
v7 appcompat library
(目前最新的是22.2.0) - 您应该从
AppCompatActivity
扩展您的 activity