我最近向Playstore提交了应用程序。我认为应用会由Google设备自动测试。我在Play商店开发者控制台中发现了许多崩溃(大约70个)。当我在我的真实设备中测试时,我没有遇到任何崩溃。如何避免崩溃/下次从列表中删除崩溃。
我的应用已登录,无需登录用户,用户无法转到信息中心。但崩溃报告与应用程序内部相关(我的意思是在登录后)。
如何处理这种情况?我们是否需要编写任何测试用例以避免谷歌设备崩溃,因为我们没有崩溃。 `
@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)
答案 0 :(得分:3)
如何避免崩溃/下次从列表中删除崩溃。
分析堆栈跟踪,尝试识别错误,然后修复错误。通过错误修复程序向您的应用发送更新。
然后,正如传说中的洗发水瓶说明书所写,“泡沫,冲洗,重复”,因为您将来会遇到同样的问题,很有可能。
我认为应用会由Google设备自动测试。
崩溃是来自普通用户,来自某种自动化测试引擎,还是来自跳跃在水晶甲基上的雪貂,这并不重要。如果您的应用在现场崩溃,则您的应用中存在错误。如果没有别的,你会错过一些在崩溃之前检测到问题的防御性编程步骤,然后将用户重定向到其他地方。
我的应用已登录,无需登录用户,用户无法转到信息中心。
也许你的应用中的错误是有办法在没有登录的情况下进入仪表板。例如,仪表板活动可能有<intent-filter>
或以其他方式导出,这意味着任何人,任何时候,可以开始那项活动。或者,也许仪表板活动假定将填充某些static
字段,如果应用程序的进程在后台处理时终止,则可能不是这种情况。