I guess its because of making network requests on UI thread. You can try to get the whole error instead of the message. So you would be able to check the error type and related properties.
Basically when you launch your application, application create a primary thread which we called as main thread which is responsible for dispatching event to UI widgets and communicate with components. So, this is also called as UI thread. When we do heavy operations in Android, we should not perform that task on UI thread so we should create a new thread and perform task there. But to dispatch event, or i to associate result to UI thread, we use runOnUiThread method from Activity class.
Threads & Processes are related to each other so i will suggest you to read more about these terms from Android Developer Documentation.
An example of creating a new thread can be
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
// Your code starts from here
}
});
thread.start(); // To start the thread
Again, you should call runOnUiThread to send value to UI thread.
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
// Maybe raise a event or do something on UI thread
}
});
For examples for network operation like get request, you can read this thread from AppInventor Community :