【问题标题】:How to debug an apk installed through google drive?如何调试通过谷歌驱动器安装的apk?
【发布时间】:2019-08-15 15:16:18
【问题描述】:

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

我的应用有两个 Activity:Main 和 Game Play。在主屏幕(活动)上有一个播放按钮,用于启动第二个活动(游戏)。我有一个物理设备 (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;

【问题讨论】:

  • 将您的设备插入计算机并查看 android studio 中的 logcat 输出是否发生崩溃
  • 两者都是调试版本?如果是,那么看看 logcat。我认为可能是布局问题。
  • @tyczj 感谢您的建议。我错误地认为,如果一个应用程序不是通过 Android Studio 安装的,它就不会显示错误。连接电缆后,日志猫显示上述(主帖)错误。还是不知道怎么解决。
  • @Bhaven Shah,不,这是提交给 Google Play 商店的最终生成的 apk。它可以通过 Android Studio Play 按钮在同一设备上完美运行,但不能通过 Google Drive。

标签: android android-studio crash apk


【解决方案1】:

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

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

【讨论】:

  • 我在那里找不到非常明确的解决方案。每个人都在谈论图书馆,但没有人提到在哪里可以找到它或如何更改它。我正在考虑卸载 Android Studio 以及所有 sdks 等,看看是否有帮助。
猜你喜欢
  • 1970-01-01
  • 2018-10-14
  • 2022-06-28
  • 2014-01-12
  • 2016-06-22
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 2019-11-02
相关资源
最近更新 更多