Java 오류 해결 NetworkOnMainThreadException
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xx.xx/com.xx.xx.Activity}: android.os.NetworkOnMainThreadException
Caused by: android.os.NetworkOnMainThreadException
네트워크 연결 작업 스레드는 main 스레드 말고 멀티 스레드로 돌려야 된다.
아래 코드에서는 thread.run() 대신 thread.start()로 수정하여 해결.
문제 코드
NetworkThread networkThread = new NetworkThread();
networkThread.run();
private class NetworkThread extends Thread {
@Override
public void run() {
try {
URL url = new URL("https://xxx");
InputStream inputStream = url.openStream(); //NetworkOnMainThreadException 발생
. . .
}
}
}
수정 코드
NetworkThread networkThread = new NetworkThread();
networkThread.start(); //멀티스레드로 돌림
try {
networkThread.join();
} catch (Exception e) {
e.printStackTrace();
}
private class NetworkThread extends Thread {
@Override
public void run() {
try {
URL url = new URL("https://xxx");
InputStream inputStream = url.openStream();
. . .
}
}
}
반응형
'Android' 카테고리의 다른 글
[Android] CertPathValidatorException: Trust anchor for certification path not found. (3) | 2024.10.03 |
---|---|
[Android] Test에서 파일 읽어서 테스트하기 (0) | 2024.08.07 |
[Android] Google AdMob 광고 게재 중지 문제 해결 (0) | 2022.01.23 |
[Android] 앱 내에서 다크 모드 해제 (0) | 2021.08.16 |
[Android] 안드로이드 앱 타이틀바 색상 바꾸기 (0) | 2021.08.05 |