-1

I added Jsoup library from : File > Project Structure > Dependencies When I wrote This Code :

    val dockhalij = Jsoup.connect("http://khalikmusic.org").get()

my application will compile correctly but when I test it on my device (Galaxy Grand Duos), will be close and show be message Unfortunately 'app name' has stopped.

Without this line My application works correctly but I can't use Jsoup Library.

logcat :

08-29 18:09:39.188 31871-31871/? E/AndroidRuntime: FATAL EXCEPTION: main
                                               java.lang.RuntimeException: Unable to start activity ComponentInfo{ir.bostanu.jelvilmusic/ir.bostanu.jelvilmusic.MainActivity}: android.os.NetworkOnMainThreadException
                                                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2245)
                                                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2299)
                                                   at android.app.ActivityThread.access$700(ActivityThread.java:150)
                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280)
                                                   at android.os.Handler.dispatchMessage(Handler.java:99)
                                                   at android.os.Looper.loop(Looper.java:137)
                                                   at android.app.ActivityThread.main(ActivityThread.java:5283)
                                                   at java.lang.reflect.Method.invokeNative(Native Method)
                                                   at java.lang.reflect.Method.invoke(Method.java:511)
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
                                                   at dalvik.system.NativeStart.main(Native Method)
                                                Caused by: android.os.NetworkOnMainThreadException
                                                   at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1128)
                                                   at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
                                                   at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
                                                   at java.net.InetAddress.getAllByName(InetAddress.java:214)
                                                   at libcore.net.http.HttpConnection.<init>(HttpConnection.java:70)
                                                   at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
                                                   at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
                                                   at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
                                                   at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
                                                   at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:316)
                                                   at libcore.net.http.HttpEngine.connect(HttpEngine.java:311)
                                                   at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290)
                                                   at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240)
                                                   at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:81)
                                                   at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:652)
                                                   at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:629)
                                                   at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:261)
                                                   at org.jsoup.helper.HttpConnection.get(HttpConnection.java:250)
                                                   at ir.bostanu.jelvilmusic.MainActivity.onCreate(MainActivity.kt:49)
                                                   at android.app.Activity.performCreate(Activity.java:5283)
                                                   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
                                                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209)
                                                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2299) 
                                                   at android.app.ActivityThread.access$700(ActivityThread.java:150) 
                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280) 
                                                   at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                   at android.os.Looper.loop(Looper.java:137) 
                                                   at android.app.ActivityThread.main(ActivityThread.java:5283) 
                                                   at java.lang.reflect.Method.invokeNative(Native Method) 
                                                   at java.lang.reflect.Method.invoke(Method.java:511) 
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 
                                                   at dalvik.system.NativeStart.main(Native Method) 

When I Add libraries with file > project Structure > Dependencies, libraries don't Work for me (Always), I don't know why

2 Answers2

3

This is because you are performing network operation on main thread, try this:

Thread threadJSoup = new Thread(new Runnable() {
    @Override
    public void run() {
        try {
          val dockhalij = Jsoup.connect("http://khalikmusic.org").get();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
});

threadJSoup.start(); 
Vishal Yadav
  • 3,642
  • 3
  • 25
  • 42
Shaifali Rajput
  • 1,279
  • 12
  • 30
0

See post How do I fix android.os.NetworkOnMainThreadException?

It is explained there, that you are not allowed to perform network operations on the main thread and it seems that you perform that line

 val dockhalij = Jsoup.connect("http://khalikmusic.org").get()

on the main thread.

guenhter
  • 11,255
  • 3
  • 35
  • 66