반응형
오류 StrictMode $ AndroidBlockGuardPolicy.onNetwork
이 질문에 이미 답변이 있습니다.
나는 안드로이드 응용 프로그램을 만들고 JSON
서버에서 데이터 가져 오기를 사용 했지만 아래 오류가 표시됩니다.
android.os.NetworkOnMainThreadException
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
이 문제를 어떻게 해결할 수
있습니까 감사합니다
MainActivity 클래스에 "StrictMode"두 줄을 삽입해야합니다. 예제는 다음과 같습니다.
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
try {
// JSON here
} catch (JSONException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
setContentView(R.layout.activity_main);
Intent intent=new Intent(this,HomeActivity.class);
startActivity(intent);
}
}
Aey.Sakon
더 나은 사용하기 AsyncTask
언급 한 바와 같이 여기에 바로 치우는에 대한 대안을 Exception
사용하는 것입니다 :
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
아니면 이거 :
Thread thread = new Thread(new Runnable(){
@Override
public void run() {
try {
//Your code goes here
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
}
});
thread.start();
귀하의 활동에서 Exception
발생합니다.
생성 방법 후에 두 줄을 추가하십시오.
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
참조 URL : https://stackoverflow.com/questions/22395417/error-strictmodeandroidblockguardpolicy-onnetwork
반응형
'code' 카테고리의 다른 글
WIFI가 연결되면 SSID 받기 (0) | 2021.01.09 |
---|---|
Ctrl R이 SQL Server 2012에서 작동하지 않습니다. (0) | 2021.01.09 |
Laravel 마이그레이션 테이블이 이미 존재하지만 이전 항목이 아닌 새 항목을 추가하고 싶습니다. (0) | 2021.01.09 |
라텍스 다중 줄 바꿈 (0) | 2021.01.09 |
백분율 계산 (0) | 2021.01.09 |