【问题标题】:Debug App in Galaxy S5在 Galaxy S5 中调试应用程序
【发布时间】:2016-01-26 16:57:31
【问题描述】:

我正在使用 Android Studio 1.5.1 为我的公司构建一个 Android 应用。我发现该应用无法在部分 Galaxy S5 手机上运行。

这些手机在应用运行时只会显示白屏。 此错误发生在装有 Android 5.1.1 的 Galaxy S5 设备上,但不会发生在运行 Android 5.0 的 Galaxy S5 设备上

我将重点关注 Android 版本作为解决此错误的线索。 我实际上无法获得其中一个设备,因此我创建了几个虚拟设备。 Android Studio 的虚拟设备配置向导中有 6 个可下载的 Android 5.1.1 系统映像。我已经安装了所有这些。没有复制此白屏错误。

我还能做些什么来发现这个错误?

如果它有助于回答我的问题,我的应用在很大程度上依赖于服务器通信。整个应用程序只有一个 Webview 和几个 htmlJS 文件。

【问题讨论】:

  • 你有来自它不工作的设备的日志(dumpstate)吗?
  • 请从受影响的设备上发布 logcat
  • 问题很明确,我无法在物理设备上进行测试。
  • @GRY 一旦你无法调试它,我建议集成一些分析系统,如Crittercism 并记录所有异常、面包屑、应用程序启动的所有关键状态等。一旦你得到数据 - 尝试找出问题所在。模拟器的问题在于它们不能再现实际的设备行为,所以我认为你在这里没有太多选择。
  • 将评论转换为包含更多细节的答案 - 我希望你会发现它无论如何有用并想出如何解决你的问题:WebView 是棘手的控制,你不是第一个面临stackoverflow.com/questions/21374901/…stackoverflow.com/questions/34220219/… 和许多其他问题。

标签: android android-studio avd


【解决方案1】:

模拟器的问题在于它们无法再现实际的设备行为(尤其是当三星等许多 OEM 倾向于根据自己的需求定制 Android 时),所以我'恐怕你唯一的选择是:

  1. 获取带有 5.1.1 的三星 Galaxy S5

    除了明显的想法“去购物和购买”,我可以推荐你:

    • 查看Open Device Lab。它在世界各地开展业务,可以说是在那里找到您需要的设备的好机会;
    • 建立一个 alpha-beta 用户池,您可以与之交谈并分享新版本。 Google Play 在这方面的功能相当丰富。三星 S5 是很常见的型号,所以用它找人应该不成问题。如果您的产品是“公开的”,您可以尝试在 BetaBound 等服务上或在您的社交媒体网络中寻找测试版用户;
  2. 使用分析工具从受影响的设备收集更多数据并根据您获得的信息采取行动

    有许多不同的框架可以实现它。我可以建议Crittercism 作为一个超级强大和全面的工具。特别是,我肯定会记录:

    • 所有处理的异常
    • breadcrumbs (short string to capture app run-time information) 添加到所有Activity/Fragment 生命周期方法,添加到Application 的方法(因为启动时的白屏可能意味着存在一些问题),添加到所有有意义的异步任务等中。
    • 如果应用程序进入怀疑状态 - 将其记录为已处理的异常,这样您就可以查看整个面包屑轨迹并跟踪用户的异常历史记录。不幸的是,在某些事情被记录为问题(崩溃或异常)之前,您不会得到面包屑的踪迹。有记录所有内容的框架,例如 MixPanel,但老实说,我认为 Crittercism 更适合这里)

    Crittercism 还会捕获并报告应用中发生的所有崩溃,并且

    入门指南在这里,非常简单:http://docs.crittercism.com/android/android.html

话虽如此,我还是建议您集成一些分析,因为它会在将来帮助您并尝试将受影响的手机拿到手中进行测试。

【讨论】:

    【解决方案2】:

    我猜罪魁祸首是 webview。 您能否检查可重现问题的 webview 版本。

    要查看版本你需要去设置->应用程序管理器->下载的应用程序->检查“Android系统Webview”版本

    当屏幕过去是空白时,我们遇到了类似的问题,它过去只发生在特定版本的 webview 上。谷歌后来修复了这个问题。

    现在可以从 Google Play 更新 chromium webview 层。

    更多详情请参考-http://developer.android.com/about/versions/lollipop.html#WebView

    【讨论】:

      【解决方案3】:

      我假设您正在构建一个混合应用程序。

      如果 webview 是罪魁祸首,你可以试试crosswalk。 它将 Mb 添加到您的应用程序中,但它确保每台设备都使用相同的 web 视图(最新的 chromium)。此外,渲染差异等也被最小化。

      如果您使用的是cordova,请运行:cordova plugin add cordova-plugin-crosswalk-webview 就可以了。

      如果你实现了这个并且白屏问题消失了,你就用sherlock holmish deduction方式调试它......

      【讨论】:

        【解决方案4】:

        问题不在于模拟器。在Android版本5.1 onward中与WebView一起使用。

        试试

        卸载“Android 系统 webview”应用程序的更新(转到 设置并在“已下载”下查找它)它工作得很好!

        Source - similar question

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-02-16
          • 1970-01-01
          • 1970-01-01
          • 2015-10-07
          • 2015-01-28
          相关资源
          最近更新 更多