安卓 - 签名apk在移动设备上无法运行

4
我遇到了一个非常奇怪的问题。当我直接从项目的bin文件夹中复制APK并粘贴到手机SD卡中时,安装后它可以正常运行。但是当我使用Android工具导出签名APK并将APK放置在SD卡中时,它可以成功安装但无法运行。我不知道为什么会出现这种情况。我也在应用程序中使用了Progaurad。这是导致应用程序崩溃的原因吗?
以下是logcat输出:
> FATAL EXCEPTION: main
Process: com.globalassignmenthelp, PID: 7708
java.lang.AbstractMethodError: abstract method "android.view.View q.a(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet)"
at r.onCreateView(Unknown Source)
at android.support.v4.app.FragmentActivity.onCreateView(Unknown Source)
at com.globalassignmenthelp.Perspective.onCreateView(Unknown Source)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:733)
at android.view.LayoutInflater.inflate(LayoutInflater.java:482)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:3571)
at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:3644)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:381)
at android.app.Activity.setContentView(Activity.java:2159)
at com.globalassignmenthelp.Perspective.onCreate(Unknown Source)
at android.app.Activity.performCreate(Activity.java:5966)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2408)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2517)
at android.app.ActivityThread.access$800(ActivityThread.java:162)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1412)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:189)
at android.app.ActivityThread.main(ActivityThread.java:5529)
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:950)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)

请帮忙,谢谢您的帮助。


尝试删除当前应用并重新安装新应用。 - Tran Vinh Quang
我做了同样的事情,但仍然面临着相同的错误。 - Sanwal Singh
2
bin文件夹中的Apk文件已使用Debug key签名,但是当您导出时,Apk将使用Release key签名。 - Danh DC
@Danh- 我需要做什么来解决这个问题? - Sanwal Singh
你能否发布完整的logcat?我认为我们可以从中看出错误的原因。 - Tran Vinh Quang
显示剩余6条评论
2个回答

2
我认为您使用了错误的Progaurd。当Progaurd出现问题时,会出现此类问题。请尝试使用以下代码替换您的project.properties文件- 这里有链接- Progurad Code 希望这可以帮到您。

1
add this code to proguard.txt

if you are using v4

 # support-v4
-dontwarn android.support.v4.**
-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class android.support.v4.** { *; }

if you are using v7

# support-v7
-dontwarn android.support.v7.**
-keep class android.support.v7.internal.** { *; }
-keep interface android.support.v7.internal.** { *; }
-keep class android.support.v7.** { *; }

这对我来说解决了问题。但愿我能理解为什么这不是默认的proguard-android.txt的一部分。 - Oded

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