使用Internet时我的应用程序崩溃,但仅限于Pie

时间:2018-12-09 10:05:12

标签: android nullpointerexception

当我进行任何网络活动(特别是通过InputStream读取文本)时,我的应用程序崩溃,但仅限于Android Pie。我已经使用运行各种API版本的仿真器对其进行了尝试,但这仅在API 28上发生。我也已在运行Pie的实际电话上对其进行了尝试,并且它也在那里崩溃了。该应用程序在所有其他Android版本afaik上均可正常运行。

日志显示如下:

2018-12-09 14:59:16.917 6864-6925/<package> E/AndroidRuntime: FATAL EXCEPTION: Thread-4
    Process: <package>, PID: 6864
    java.lang.NullPointerException
        at java.io.Reader.<init>(Reader.java:78)
        at java.io.InputStreamReader.<init>(InputStreamReader.java:72)
        at <package>.<Activity class>.<method>(<Activity class>.java:304)

我的代码中导致堆栈跟踪的语句是:

BufferedReader br = new BufferedReader(new InputStreamReader(text));

上面的text = con.getInputStream();,在我调试时返回nullconURLConnection,用于打开到特定URL的连接。 con的值似乎还不错,并且与不同API版本上的con值相同。

因此,罪魁祸首似乎是text = con.getInputStream();,它通常在API 27及更低版本上返回,但在Pie上返回null

有什么想法会导致这种情况吗?让我知道我是否还能提供更多信息。

1 个答案:

答案 0 :(得分:0)

好的,我弄清楚了为什么问题只出在Pie上。 Pie实施HTTPS,而我使用的URL是HTTP,这就是getInputStream()在连接上返回null的原因。

我按照here的步骤进行了修复。