首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >相同的崩溃会根据设备产生不同的堆栈跟踪。

相同的崩溃会根据设备产生不同的堆栈跟踪。
EN

Stack Overflow用户
提问于 2014-12-30 23:06:26
回答 1查看 215关注 0票数 0

我在Google Play上有一个应用程序,它正在遭受由一个空指针异常调用的崩溃。在Google控制台上查看崩溃的堆栈跟踪时,即使Android版本相同,堆栈跟踪报告的行号也因设备而异。既然这是Android代码,而且它是相同版本的Android,那么为什么行号不一样?

我有几个猜想: 1.)控制台将这些设备报告为Android4.4,但它们可能有不同的4.4.x版本。2.)这些是不同的设备,因此制造商已经更改了SDK中的一些代码,以说明每个特定的设备。

非常感谢所有的帮助,下面复制了示例堆栈跟踪。

此堆栈跟踪来自运行Android4.4的三星设备:

无法创建服务android.app.ActivityThread.access$1900(ActivityThread.java:174) at android.app.ActivityThread.access$1900(ActivityThread.java:174) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1389) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:146) at android.app.ActivityThread.main(ActivityThread.java,java.lang.RuntimeException: java.lang.NullPointerException:存储==空:5593)在java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) at dalvik.system.NativeStart.main(原生方法)的java.lang.reflect.Method.invokeNative(本地方法),原因是: java.lang.NullPointerException:存储== null at java.util.Arrays$ArrayList.(Arrays.java:38) at java.util.Arrays.asList(Arrays.java:155)

这个是来自不同的设备,但它也运行Android4.4:

无法创建服务android.app.ActivityThread.access$1800(ActivityThread.java:138) at android.app.ActivityThread.access$1800(ActivityThread.java:138) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java,java.lang.RuntimeException: java.lang.NullPointerException:存储==空:5111)在java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:780) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:596) at dalvik.system.NativeStart.main(原生方法)的java.lang.reflect.Method.invokeNative(本地方法),原因是: java.lang.NullPointerException:存储== null at java.util.Arrays$ArrayList.(Arrays.java:38) at java.util.Arrays.asList(Arrays.java:155)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-30 23:20:18

在我看来是一样的,看这条公共行,Caused by: java.lang.NullPointerException: storage == null at java.util.Arrays$ArrayList.(Arrays.java:38) at java.util.Arrays.asList(Arrays.java:155)

MainService类的某个位置,您似乎正在尝试将空数组转换为列表。让我们通过查看Arrays.asList代码来确认

代码语言:javascript
运行
复制
    public static <T> List<T> asList(T... array) {
        return new ArrayList<T>(array);
    }

好的,这调用了一个构造函数,它是也是在Arrays.java中

代码语言:javascript
运行
复制
    ...
    ArrayList(E[] storage) {
        if (storage == null) {
            throw new NullPointerException("storage == null");
        }
        a = storage;
    }
    ...

这是storage == null漫画的发源地。我的建议是,检查应用程序中空数组的使用情况。

为什么行号不一样?

这些不同的行与android框架有关,在这种特殊情况下,它如何启动您的服务,然后在启动过程中找到一个Null指针,然后失败。启动服务可能因设备而异,取决于制造商和API级别。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27713883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档