Android 崩溃显示在开发者控制台中

Android 崩溃显示在开发者控制台中,android,Android,我最近向playstore提交了应用程序。我认为应用程序是由谷歌设备自动测试的。我在Play store开发者控制台中发现了许多崩溃(大约70次)。当我在我的真实设备上进行测试时,我没有遇到任何崩溃。如何避免崩溃/下次从列表中删除崩溃 我的应用程序已登录,没有登录用户,用户无法进入仪表板。但崩溃报告与应用程序内部(我是指登录后)相关 如何处理这种情况?我们是否需要编写任何测试用例来避免来自google设备的此类崩溃,因为我们没有遇到崩溃。 ` ` 如何避免崩溃/下次从列表中删除崩溃 分析堆栈跟

我最近向playstore提交了应用程序。我认为应用程序是由谷歌设备自动测试的。我在Play store开发者控制台中发现了许多崩溃(大约70次)。当我在我的真实设备上进行测试时,我没有遇到任何崩溃。如何避免崩溃/下次从列表中删除崩溃

我的应用程序已登录,没有登录用户,用户无法进入仪表板。但崩溃报告与应用程序内部(我是指登录后)相关

如何处理这种情况?我们是否需要编写任何测试用例来避免来自google设备的此类崩溃,因为我们没有遇到崩溃。 `

`

如何避免崩溃/下次从列表中删除崩溃

分析堆栈跟踪,尝试识别错误,然后修复错误。向您的应用程序发送一个更新和错误修复

然后,正如传说中的洗发水瓶说明所说,“起泡、冲洗、重复”,因为你很可能在将来遇到同样的问题

我认为应用程序是由谷歌设备自动测试的

无论是普通用户、某种自动测试引擎还是服用冰毒的雪貂造成的车祸,都无关紧要。如果您的应用程序在现场崩溃,则表明您的应用程序中存在错误。如果没有其他问题,您将错过一些防御性编程步骤,这些步骤将在崩溃之前检测到问题,然后将用户重定向到其他地方

我的应用程序已登录,没有登录用户,用户无法进入仪表板

也许你的应用程序中的错误在于,有很多方法可以不用登录就进入仪表板。例如,可能仪表板活动有一个
,或者以其他方式导出,这意味着任何人都可以随时启动该活动。或者,如果应用程序的进程在后台终止,仪表板活动可能会假定某些
静态
字段将被填充,但情况可能并非如此

如何避免崩溃/下次从列表中删除崩溃

分析堆栈跟踪,尝试识别错误,然后修复错误。向您的应用程序发送一个更新和错误修复

然后,正如传说中的洗发水瓶说明所说,“起泡、冲洗、重复”,因为你很可能在将来遇到同样的问题

我认为应用程序是由谷歌设备自动测试的

无论是普通用户、某种自动测试引擎还是服用冰毒的雪貂造成的车祸,都无关紧要。如果您的应用程序在现场崩溃,则表明您的应用程序中存在错误。如果没有其他问题,您将错过一些防御性编程步骤,这些步骤将在崩溃之前检测到问题,然后将用户重定向到其他地方

我的应用程序已登录,没有登录用户,用户无法进入仪表板


也许你的应用程序中的错误在于,有很多方法可以不用登录就进入仪表板。例如,可能仪表板活动有一个
,或者以其他方式导出,这意味着任何人都可以随时启动该活动。或者,如果应用程序的进程在后台终止,可能仪表板活动假定某些
静态
字段将被填充,但情况可能并非如此。

您在实际设备中未发现任何崩溃,并不自动意味着在野外没有崩溃。为什么不修复它们而不是试图“隐藏”它们呢?谷歌的自动测试无法登录,所以你的故事有点奇怪<代码>但崩溃报告与应用程序内部相关(我是指登录后)。
当谷歌设备无法登录时,您如何在登录后获得崩溃?请参阅下面的Commonware的答案。@JacksOnF1re我们已经在这里手动测试过了。我们还没有面对这些问题。若代码不正常,那个么对我们来说应该是可复制的,对吗?“我们已经完成了手动测试”。。当然可以,但这不能保证你没有找到你的bug。我打赌你没有使用各种品牌,各种安卓版本,并且知道各种可能的方法来绕过你的登录。如果你不同意,好吧,我只是告诉你和Commonsware一样。你没有在你的真实设备中发现任何崩溃,并不意味着在野外没有崩溃。为什么不修复它们而不是试图“隐藏”它们呢?谷歌的自动测试无法登录,所以你的故事有点奇怪<代码>但崩溃报告与应用程序内部相关(我是指登录后)。
当谷歌设备无法登录时,您如何在登录后获得崩溃?请参阅下面的Commonware的答案。@JacksOnF1re我们已经在这里手动测试过了。我们还没有面对这些问题。若代码不正常,那个么对我们来说应该是可复制的,对吗?“我们已经完成了手动测试”。。当然可以,但这不能保证你没有找到你的bug。我打赌你没有使用各种品牌,各种安卓版本,并且知道各种可能的方法来绕过你的登录。如果你不同意,好吧,我只是跟你说同样的话。非常感谢。我已经更新了日志。方法已进行空检查。为什么我们还在崩溃?@AndroidDeveloperWorld:因为没有人知道
MyProfileFragment.java
中的第250行是什么,所以没有人能真正帮助你。通常,您的
null
检查可能无效,因为您显然处于多线程状态(您的
null
检查似乎位于
AsyncTask
doInBackground()
)。如果另一个线程在
null
检查和您使用该字段之间将该
static
字段设置为
null
,会发生什么情况?好的,我同意这可能会有一些代码问题。但是,在我不提供数据的情况下,如何能够测试流量呢。因为我的api调用需要手机号码/以p身份登录
@Override
            protected String doInBackground(Void... voids) {
                if (CropMainActivity.cropped == null) {
                    return "";
                }
                return compress(CropMainActivity.cropped);
            }




java.lang.RuntimeException: 
  at io.fabric.sdk.android.services.concurrency.AsyncTask$3.done(AsyncTask.java:323)
  at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
  at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
  at java.util.concurrent.FutureTask.run(FutureTask.java:242)
  at io.fabric.sdk.android.services.concurrency.AsyncTask$SerialExecutor$1.run(AsyncTask.java:254)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
  at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NullPointerException: 
  at com.myapp.fragment.MyProfileFragment.compress(MyProfileFragment.java:250)
  at com.myapp.fragment.MyProfileFragment.access$100(MyProfileFragment.java:51)
  at com.myapp.fragment.MyProfileFragment$2.doInBackground(MyProfileFragment.java:185)
  at com.myapp.fragment.MyProfileFragment$2.doInBackground(MyProfileFragment.java:181)
  at io.fabric.sdk.android.services.concurrency.AsyncTask$2.call(AsyncTask.java:311)
  at java.util.concurrent.FutureTask.run(FutureTask.java:237)