【问题标题】:java.lang.RuntimeException: An error occurred while executing doInBackground() using Kotlinjava.lang.RuntimeException:使用 Kotlin 执行 doInBackground() 时发生错误
【发布时间】:2018-06-01 18:00:05
【问题描述】:
  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:执行 doInBackground() 时出错 在 android.os.AsyncTask$3.done(AsyncTask.java:325) 在 java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) 在 java.util.concurrent.FutureTask.setException(FutureTask.java:223) 在 java.util.concurrent.FutureTask.run(FutureTask.java:242) 在 android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 在 java.lang.Thread.run(Thread.java:760) 引起:kotlin.KotlinNullPointerException 在highway.dueamount.MainActivity$someTask.doInBackground(MainActivity.kt:60) 在highway.dueamount.MainActivity$someTask.doInBackground(MainActivity.kt:57) 在 android.os.AsyncTask$2.call(AsyncTask.java:305) 在 java.util.concurrent.FutureTask.run(FutureTask.java:237) 在 android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 在 java.lang.Thread.run(Thread.java:760)

【问题讨论】:

  • 您好,您的 MYSQL 服务器正在您的 PC 上运行,但您的 Android 设备将无法看到它。因此,您应该编写一个连接到数据库的 REST API,该 API 可以将数据以合理的格式(如 JSON)发送到 Android 设备

标签: android sql jdbc kotlin


【解决方案1】:

您正试图解开 null。只需删除!它会起作用的

val conn: Connection= null

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 2020-12-12
    相关资源
    最近更新 更多