Size: a a a

StartAndroid Ru Kotlin

2018 May 29

N

Neio in StartAndroid Ru Kotlin
такое выдает
источник

DB

Dmitriy Bushuev in StartAndroid Ru Kotlin
попробуй скомпилировать проект с —stacktrace и посмотри, в чем именно проблема
источник

R

Ruslan in StartAndroid Ru Kotlin
Приветствую.
Задача включить Progressbar, сделать HTTP-запрос и после отключить Progressbar.

На SO нашел код, который позволяет в потоке сделать HTTP-запрос:
    class GetDataTask(textView: TextView, progressBar: ProgressBar, Host: String) : AsyncTask<Unit, Unit, String>() {

       val innerTextView: TextView? = textView
       val urlHost: String? = Host
       val aniIndicator: ProgressBar? = progressBar

       override fun doInBackground(vararg params: Unit?): String? {
           val url = URL(urlHost)
           val httpClient = url.openConnection() as HttpURLConnection
           if (httpClient.responseCode == HttpURLConnection.HTTP_OK) {
               httpClient.disconnect()
           } else {
               println("ERROR ${httpClient.responseCode}")
           }

           return null
       }

       override fun onPostExecute(result: String?) {
           super.onPostExecute(result)

           innerTextView?.text = JSONObject(result).toString()
           aniIndicator?.setVisibility(View.INVISIBLE) // тут возникает ошибка при попытке скрыть Прогрессбар
           
       }
   }



По нажатию кнопки показываю Прогрессбар
        btnCheckhost.setOnClickListener({
           aniIndicator.setVisibility(View.VISIBLE)

           GetDataTask(tmpTextView, aniIndicator, "https://raw.githubusercontent.com/irontec/android-kotlin-samples/master/common-data/bilbao.json").execute()

       })



На строке aniIndicator?.setVisibility(View.INVISIBLE) получаю ошибку:

05-29 10:42:14.130 3329-7440/int.ru.cab E/NativeCrypto: ssl=0x7f79240280 cert_verify_callback x509_store_ctx=0x7f5f822398 arg=0x0
   ssl=0x7f79240280 cert_verify_callback calling verifyCertificateChain authMethod=ECDHE_RSA
05-29 10:42:14.482 3329-3329/int.ru.cab E/AndroidRuntime: FATAL EXCEPTION: main
   Process: int.ru.cab, PID: 3329
   java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
       at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116)
       at org.json.JSONTokener.nextValue(JSONTokener.java:94)
       at org.json.JSONObject.<init>(JSONObject.java:156)
       at org.json.JSONObject.<init>(JSONObject.java:173)
       at int.ru.cab.SetsActivity$GetDataTask.onPostExecute(SetsActivity.kt:150)
       at int.ru.cab.SetsActivity$GetDataTask.onPostExecute(SetsActivity.kt:112)
       at android.os.AsyncTask.finish(AsyncTask.java:636)
       at android.os.AsyncTask.access$500(AsyncTask.java:177)
       at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:653)
       at android.os.Handler.dispatchMessage(Handler.java:111)
       at android.os.Looper.loop(Looper.java:194)
       at android.app.ActivityThread.main(ActivityThread.java:5637)
       at java.lang.reflect.Method.invoke(Native Method)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)


Как делать правильно?
источник

G

Gleb in StartAndroid Ru Kotlin
innerTextView?.text = JSONObject(result).toString()
источник

G

Gleb in StartAndroid Ru Kotlin
уверен что не на этой строке?
источник

G

Gleb in StartAndroid Ru Kotlin
SetsActivity.kt:112
источник

R

Ruslan in StartAndroid Ru Kotlin
Gleb
innerTextView?.text = JSONObject(result).toString()
без строки aniIndicator?.setVisibility(View.INVISIBLE) ошибки то нет
источник

G

Gleb in StartAndroid Ru Kotlin
вот где ошибка
источник

R

Ruslan in StartAndroid Ru Kotlin
Gleb
SetsActivity.kt:112
Вот эта строка
class GetDataTask(textView: TextView, progressBar: ProgressBar, Host: String) : AsyncTask<Unit, Unit, String>() {
источник

G

Gleb in StartAndroid Ru Kotlin
тупанул, 150 строка
источник

R

Ruslan in StartAndroid Ru Kotlin
Gleb
тупанул, 150 строка
странно, тогда действительно
innerTextView?.text = JSONObject(result).toString()
источник

G

Gleb in StartAndroid Ru Kotlin
проверь свой result в дебаге, есть подозрение что он у тебя пустой
источник

G

Gleb in StartAndroid Ru Kotlin
можешь в личку написать потом, чтобы не спамить
источник

R

Ruslan in StartAndroid Ru Kotlin
совершенно верно, result оказался null, в этом была проблема 👍
источник
2018 May 30

T

Taras in StartAndroid Ru Kotlin
Ребят, как сделать синглтон инстанс на котлине? только чтобы его можно было обнулить (чтобы он var был)
источник

a

alp in StartAndroid Ru Kotlin
вариант 1 - создавать свой класс с такой логикой. вариант 2 - создавать обьект с методом для очистки состояния
источник

DB

Dmitriy Bushuev in StartAndroid Ru Kotlin
синглтоны - это плохо
источник

a

alp in StartAndroid Ru Kotlin
синглтоны - это хорошо.
злоупотреблять синглтонами плохо
источник

A

Aleksandr in StartAndroid Ru Kotlin
неумелое обращение с синглтонами - плохо
источник

N

Neio in StartAndroid Ru Kotlin
Датабиндинг в котлине работает в обще?
источник