首页 文章

java.lang.RuntimeException:使用Kotlin执行doInBackground()时发生错误

提问于
浏览
-2
override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
            callPostReq()
            val sm = someTask()
            sm.execute()
        }
inner class someTask(): AsyncTask<String, Int, Array<String>>() {
    override fun doInBackground(vararg params: String): Array<String>?  {
        val conn: Connection= null!!
        val url = "jdbc:mysql://localhost:3306/"
        val dbName = "db-01"
        val driver = "com.mysql.jdbc.Driver"
        val cred = Properties()
        cred.put("username","username")
        cred.put("password","pasword")

        try {
            Class.forName(driver).newInstance()
            conn = DriverManager.getConnection(url,cred)
            println("Connected to the database")
            conn.close()
            println("Disconnected from database")
        } catch (e: Exception) {
            e.printStackTrace()
        }
        return null
    }
}

致命异常:AsyncTask#1进程:highway.dueamount,PID:15746 java.lang.RuntimeException:在java.util上的android.os.AsyncTask $ 3.done(AsyncTask.java:325)执行doInBackground()时发生错误.concurrent.FutureTask.finishCompletion(FutureTask.java:354)at java.util.concurrent.FutureTask.setException(FutureTask.java:223)at java.util.concurrent.FutureTask.run(FutureTask.java:242)at android . os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:243)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:607) )在java.lang.Thread.run(Thread.java:760)引起:ktlin.KotlinNullPointerException at highway.dueamount.MainActivity $ someTask.doInBackground(MainActivity.kt:60)at highway.dueamount.MainActivity $ someTask.doInBackground( MainActivity.kt:57)在android.os.AsyncTask $ 2.call(AsyncTask.java:305)在android.os的java.util.concurrent.FutureTask.run(FutureTask.java:237) .AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:243)java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:607)在java.lang.Thread.run(Thread.java:760)

1 回答

  • 0

    您正在尝试解包null . 刚删除!!它会起作用

    val conn: Connection= null
    

相关问题