1.在AS下的报错文本:
E/AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher
Process: com.lcj.npo, PID: 2680
java.lang.NullPointerException: Attempt to invoke virtual method ‘java.lang.String com.lcj.npo.model.DataSource.getQrid()’ on a null object reference
at com.lcj.npo.dao.DataSourceDao_Impl$1.bind(DataSourceDao_Impl.java:28)
at com.lcj.npo.dao.DataSourceDao_Impl$1.bind(DataSourceDao_Impl.java:20)
at androidx.room.EntityInsertionAdapter.insert(EntityInsertionAdapter.java:96)
at com.lcj.npo.dao.DataSourceDao_Impl.insertAll(DataSourceDao_Impl.java:72)
at com.lcj.npo.MainActivity
3.
o
n
R
e
s
p
o
n
s
e
(
M
a
i
n
A
c
t
i
v
i
t
y
.
j
a
v
a
:
165
)
a
t
o
k
h
t
t
p
3.
R
e
a
l
C
a
l
l
3.onResponse(MainActivity.java:165) at okhttp3.RealCall
3.onResponse(MainActivity.java:165)atokhttp3.RealCallAsyncCall.run(RealCall.kt:138)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
I/Process: Sending signal. PID: 2680 SIG: 9
背景说明:
网络编程,json解析,解析数据存入Room中
分析:
1.空指针,到底错在哪呢,错误是在系统帮忙写的impl的实现类中,分明不可能
2.既然不可能,AS也没有编码上的问题,所以,是数据上的问题。
3.看服务器的数据
明明只有16679条,但是获取后是16680条,所以,很有可能是最后的那个符号 ’]‘ 的问题,因此,在获取后的数据去除最后一条。
即 :
list.remove(list.size()-1)
当然,还有其他问题,如
1.布局中的view问题:https://blog.youkuaiyun.com/TNove/article/details/78761511
2.response.body().string()只能使用一次问题:https://blog.youkuaiyun.com/u013040819/article/details/56672364
view问题:
view问题很多在于id的问题,在layout文件中能不用相同的Id就不要使用,在查错时会很痛苦,因为在开发工具上并没有语法上的错误,这中错误是人为因素,能避免就避免。