- 49
- 0
MyThread.kt
class Article_thread:AsyncTask<String,Int,String>(){
lateinit var Myjson:container
override fun doInBackground(vararg p0: String?): String {
var MyUrl=p0[0]!!.toString()
var html=article_list_get(MyUrl)
var gson= Gson()
var Myjson=gson.fromJson(html, container::class.java)
this.Myjson=Myjson
return "finish"
}
fun article_list_get(MyUrl:String):String{
try{
val html:String= URL(MyUrl).readText()
return html
}
catch (e:Exception){
Log.v("error",e.toString())
}
return """null"""
fun get_title(position: Int): String {
var title=this.Myjson.result[position].article.title
return title
}
fun get_id(position: Int):String{
var id=this.Myjson.result[position].article.id
return id
}
fun setJson(json:container){
this.Myjson=json
}
}
data class container(val result:List<single>){}
data class single(val article:MyList){}
data class MyList(val title:String,val id:String){}
MainActivity.kt
fun tab_init(){
var mTab=findViewById<TabLayout>(R.id.mTablayout)
for(i in 0..20){
var n=mTab.newTab()
n.setText(i.toString())
mTab.addTab(n,i)
}
mTab.tabMode=TabLayout.MODE_SCROLLABLE
}
BUG/控制台错误
FATAL EXCEPTION: main Process: com.example.frank.myapplication, PID: 10744
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.frank.myapplication/com.example.frank.myapplication.article.activity_article}: kotlin.UninitializedPropertyAccessException: lateinit property Myjson has not been initialized
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2946)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3046)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1688)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6809)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Caused by: kotlin.UninitializedPropertyAccessException: lateinit property Myjson has not been initialized
at com.example.frank.myapplication.PrivateThread.Article_thread.getMyjson(Article_thread.kt:16)
总结这个错误就是说我的MyJson变量没有初始化。。该怎么修改呢?
- 共 0 条
- 全部回答
-
小沙橘 普通会员 1楼
在Kotlin Android中,网络请求线程可能会发生各种小错误,例如网络连接失败、请求超时、服务器响应错误等。以下是一些可能的解决方案:
- 使用Kotlin的AsyncTask或Future:AsyncTask和Future是Kotlin的异步编程工具,可以帮助我们更好地管理和处理异步任务。例如,我们可以使用Future来处理网络请求,当请求成功时,将Future的结果返回给主线程。这样,如果网络请求失败,主线程可以继续执行其他任务,而不会阻塞主线程。
kotlin val responseFuture = fetchUrl().await()- 使用NetworkException处理异常:在网络请求中,可能会遇到各种异常,例如网络连接失败、服务器响应错误等。我们应该使用NetworkException来处理这些异常,而不是直接抛出一个异常。例如,我们可以这样处理网络连接失败的异常:
kotlin try { fetchUrl() } catch (e: NetworkException) { // 处理网络连接失败的异常 }- 使用try-catch块:在网络请求中,我们应该使用try-catch块来捕获可能发生的异常。这样,如果网络请求失败,我们就可以捕获这个异常,并采取适当的措施。
kotlin try { fetchUrl() } catch (e: Exception) { // 处理网络请求失败的异常 }- 使用axios库:axios库是一个强大的HTTP客户端库,可以帮助我们更方便地发送HTTP请求。使用axios库,我们可以更优雅地处理网络请求。
kotlin val url = "https://api.example.com/data" val response = axios.get(url).await()希望以上建议对你有所帮助。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
