2012-11-20 2 views
3

다음은이 tutorial을 따르고 있습니다. 제대로 작동하도록 만들었지 만 Android에서 새로운 Holo.Light에 맞게 UI를 업데이트하려고 시도 할 때 실행 중 앱 충돌이 발생합니다. 왜 그런지 안다.오래된 안드로이드 프로젝트 업데이트

UI를 업데이트하는 방법을 찾고 있었지만 제대로 작동하지 않았습니다.

아무도 나를 도울 수 있을지 궁금한가요? 어떻게하는지 알려줘? 내가 할 수있는 링크를 알려주시겠습니까? 또는 직접 해보시겠습니까?

11-20 09:50:39.523: I/dalvikvm(1460): threadid=3: reacting to signal 3 
11-20 09:50:39.682: I/dalvikvm(1460): Wrote stack traces to '/data/anr/traces.txt' 
11-20 09:50:39.892: I/dalvikvm(1460): threadid=3: reacting to signal 3 
11-20 09:50:40.003: I/dalvikvm(1460): Wrote stack traces to '/data/anr/traces.txt' 
11-20 09:50:40.102: D/AndroidRuntime(1460): Shutting down VM 
11-20 09:50:40.102: W/dalvikvm(1460): threadid=1: thread exiting with uncaught exception (group=0x409c01f8) 
11-20 09:50:40.132: E/AndroidRuntime(1460): FATAL EXCEPTION: main 
11-20 09:50:40.132: E/AndroidRuntime(1460): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.androidhive.jsonparsing/com.androidhive.jsonparsing.AndroidJSONParsingActivity}: android.os.NetworkOnMainThreadException 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at android.app.ActivityThread.access$600(ActivityThread.java:123) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at android.os.Handler.dispatchMessage(Handler.java:99) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at android.os.Looper.loop(Looper.java:137) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at android.app.ActivityThread.main(ActivityThread.java:4424) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at java.lang.reflect.Method.invokeNative(Native Method) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at java.lang.reflect.Method.invoke(Method.java:511) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at dalvik.system.NativeStart.main(Native Method) 
11-20 09:50:40.132: E/AndroidRuntime(1460): Caused by: android.os.NetworkOnMainThreadException 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at java.net.InetAddress.lookupHostByName(InetAddress.java:391) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at java.net.InetAddress.getAllByNameImpl(InetAddress.java:242) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at java.net.InetAddress.getAllByName(InetAddress.java:220) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at com.androidhive.jsonparsing.JSONParser.getJSONFromUrl(JSONParser.java:38) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at com.androidhive.jsonparsing.AndroidJSONParsingActivity.onCreate(AndroidJSONParsingActivity.java:53) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at android.app.Activity.performCreate(Activity.java:4465) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 
11-20 09:50:40.132: E/AndroidRuntime(1460):  ... 11 more 
11-20 09:50:40.392: I/dalvikvm(1460): threadid=3: reacting to signal 3 
11-20 09:50:40.412: I/dalvikvm(1460): Wrote stack traces to '/data/anr/traces.txt' 
11-20 09:50:40.791: I/dalvikvm(1460): threadid=3: reacting to signal 3 
11-20 09:50:40.962: I/dalvikvm(1460): Wrote stack traces to '/data/anr/traces.txt' 
+1

LogCat에서 오류가 발생 했습니까? – fiddler

+0

그리고 우리는 왜 당신의 게시물 logcat 추적 –

+0

확실하지 않다면, 여기 있습니다 : http://i.imgur.com/drBOV.png – magnuskahr

답변

0

이 문제의 해결책은 두 가지입니다.

1) Main UIThread에 네트워크 호출을 쓰거나 비동기 작업을 사용하지 마십시오.

2) setContentView (R.layout.activity_main)를 실행 한 후 MainActivity 파일에 아래 코드를 작성하십시오.

if (android.os.Build.VERSION.SDK_INT > 9) { 
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
    StrictMode.setThreadPolicy(policy); 
} 

그리고 아래의 자바 파일에 import 문.

import android.os.StrictMode; 

자세한 내용은 아래 링크를 참조하십시오.

Twitter connect error

+0

감사! 두 번째 솔루션은 정상적으로 작동했습니다. – magnuskahr

+0

@ MagnusJensen Welcome Magnus. –

+2

이것은 정말 나쁜 생각입니다. 이 모든 일로 인해 문제가보고되는 것을 방지하고 UI 스레드에서 네트워크 호출을 수행한다는 사실을 변경하지 않아도 ANR이 발생할 수 있습니다. 당신은 포인트 2보다 포인트 1을 따르는 것이 훨씬 낫습니다. –

2

당신은 메인 스레드에서 네트워크 호출을하고있다 :

내가이 오류 로그를 얻을. 이것은 안드로이드 4.2에서 허용되지 않으며, 이것을 허용하는 이전 버전에서 정말 나쁜 생각입니다. http://blog.stylingandroid.com/archives/833에서 메인 스레드에서 네트워크 및 기타 무거운 호출을 이동시키는 다양한 메커니즘에 대해 블로그에 왔습니다.

코드를 보지 않고 어떤 접근 방식을 사용할 지 제안 할 수는 없지만 올바른 방법을 결정할 때 내 기사의 정보가 도움이되기를 바랍니다.

관련 문제