首页 > 解决方案 > 如何调试通过谷歌驱动器安装的apk?

问题描述

我的 Android 应用程序在模拟器和连接到计算机的物理设备上运行良好,但是当通过 Google Drive 在同一设备上安装 APK 时,它(应用程序)崩溃。

我的应用有两个活动:主要活动和游戏活动。在主屏幕(活动)上有一个播放按钮,用于启动第二个活动(游戏)。我有一个物理设备 (Galaxy Tab E) 连接到我的计算机。当我在模拟器和物理设备上测试我的应用程序时,该应用程序运行良好,没有任何问题。但是,当我为 Google Play 商店生成 APK 并将其上传到我的 Google Drive 并将其安装在同一物理设备上时,当我单击/点击播放按钮时它会崩溃。不知道如何调试它,我不知道我错过了什么。在模拟器上测试的 Android Studio 包和生成的 apk 之间有什么区别吗?

我不知道如何获取任何生成的错误以在此处添加以进行故障排除,因为该设备未连接到计算机。

我希望 APK 能够在模拟器或 USB 连接设备上完全正常工作。任何帮助是极大的赞赏。

编辑:连接电缆后,按下播放按钮时出现以下错误:

08-15 12:15:23.762 14689-14689/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: ca.simapp.kids, PID: 14689
    java.lang.VerifyError: c/b/b/a/e/a/VJ
        at c.b.b.a.e.a._J.f()
        at c.b.b.a.e.a._m.a()
        at c.b.b.a.e.a.oD.a(:16)
        at c.b.b.a.e.a.CZ.a(:3)
        at ca.simapp.kids.Game.onCreate(:5)
        at android.app.Activity.performCreate(Activity.java:5447)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2393)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493)
        at android.app.ActivityThread.access$800(ActivityThread.java:166)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5584)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
        at dalvik.system.NativeStart.main(Native Method)
08-15 12:15:24.083 588-14754/? E/android.os.Debug: !@Dumpstate > sdumpstate -k -t -z -d -m 14689 -o /data/log/dumpstate_app_error
08-15 12:15:25.994 588-666/? E/ViewRootImpl: sendUserActionEvent() mView == null
08-15 12:15:26.105 588-721/? E/InputDispatcher: channel ~ Channel is unrecoverably broken and will be disposed!
08-15 12:15:31.720 170-420/? E/audio_hw_primary: select_devices_signal starting... adev->out_devices 0x2 adev->in_devices 0x0
08-15 12:15:33.101 588-990/? E/WifiService: SEC_COMMAND_ID_SET_WIFI_SCAN_WITH_P2P : Start scan, start assoc
08-15 12:15:39.197 170-420/? E/audio_hw_primary: select_devices_signal starting... adev->out_devices 0x2 adev->in_devices 0x0

错误中的第 5 行指向

import android.content.SharedPreferences;

标签: androidandroid-studiocrashapk

解决方案


嗨检查这个链接似乎有些类在编译和运行时发生了变化。现在我建议通过添加和删除您怀疑的库进行调试,并创建 APK 以查看导致错误的库。并保持互联网连接正常,这样您就不会收到混淆的日志消息。

顺便说一句,您仍然可以使用 proguard 文件读取混淆日志,使用它来查找导致错误的类的名称。


推荐阅读