2014-04-01 1 views
1

내가, 여기에 내가 "abcabc1이다"문자열 A의 ".COM/후 값을 받고 수행 할 작업을 내 코드안드로이드 응용 프로그램 충돌 ACTION_VIEW 인 사용 후 의도

String a; 
String b; 
a="http://website1.com/abcabc1"; 
String[] separated = a.split("/"); 
b = separated[3]; 

String url = "www.website2.com/" + b; 
Intent i = new Intent(Intent.ACTION_VIEW); 
i.setData(Uri.parse(url)); 
startActivity(i); 
finish(); 

이상한 오류 발생하고 "www.website2.com/abcabc1"이 될 새 URL을 엽니 다.하지만 문제는 출시시 응용 프로그램이 충돌하는 것입니다. 문제의 원인을 발견하려고 시도했는데 발견 한 내용은 코드가

인 경우입니다.
String url = "www.website2.com/"; 

아무 문제없이 작동하지만 다음과 같이 표시되는 경우 :

String url = "www.website2.com/" + b; 

응용 프로그램이 중단됩니다.

참고 string url을 텍스트보기 텍스트로 설정하려고하면 올바른 형식으로 표시되지만 브라우저에 전달하면 충돌이 발생합니다. 가난한 언어와 감사에 미리 죄송합니다.

업데이트 : Catlog :

04-01 14:09:08.670: D/AndroidRuntime(2126): Shutting down VM 
04-01 14:09:08.670: W/dalvikvm(2126): threadid=1: thread exiting with uncaught exception (group=0xb3ad7ba8) 
04-01 14:09:08.680: E/AndroidRuntime(2126): FATAL EXCEPTION: main 
04-01 14:09:08.680: E/AndroidRuntime(2126): Process: com.example.ytdownload, PID: 2126 
04-01 14:09:08.680: E/AndroidRuntime(2126): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.ytdownload/com.example.ytdownload.MainActivity}: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=www.youtube-mp3.org/?e=session_expired&tx } 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at android.app.ActivityThread.access$800(ActivityThread.java:135) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at android.os.Handler.dispatchMessage(Handler.java:102) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at android.os.Looper.loop(Looper.java:136) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at android.app.ActivityThread.main(ActivityThread.java:5017) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at java.lang.reflect.Method.invoke(Method.java:515) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at dalvik.system.NativeStart.main(Native Method) 
04-01 14:09:08.680: E/AndroidRuntime(2126): Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=www.youtube-mp3.org/?e=session_expired&tx } 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1632) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at android.app.Activity.startActivityForResult(Activity.java:3424) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at android.app.Activity.startActivityForResult(Activity.java:3385) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at android.app.Activity.startActivity(Activity.java:3627) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at android.app.Activity.startActivity(Activity.java:3595) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at com.example.ytdownload.MainActivity.onCreate(MainActivity.java:36) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at android.app.Activity.performCreate(Activity.java:5231) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 
04-01 14:09:08.680: E/AndroidRuntime(2126):  ... 11 more 
+1

오류 로그를 표시하십시오. –

+0

@OjonugwaOchalifu 질문에 추가했습니다. – AlphaCode

답변

4

당신은 당신의 URL 전에 "http://"을 설정해야하며, 작동거야! 나는이 같은 문제 다음과 같은 제안을 할 수있는 경우

String url = "http://www.website2.com/" + b;

+2

이제 작동합니다! 나는이 부분을 잊었다는 것을 믿을 수 없다! 고맙습니다. – AlphaCode

+1

@ user3472788 정답으로 이것을 반드시 확인하십시오;) – Sadegh

0

는 (! 알아 내기 위해 나에게 시간이 걸렸다) - 지금 특히 나는에 대한 사용자 요청하는 경우에 (다음 코드를 추가

if (!(websiteString.contains("http://"))) { 
      websiteString = "http://" + websiteString; 
     } 

websitString

물론 입력 된 URL이 포함 된 문자열입니다 : 나는) 그것을 자신을 잊어 버리는 경향이 있기 때문에 URL이 있지만, 심지어 나 자신이 그것을 공급하는 경우에 대한 좋은 아이디어처럼 보인다. 홉이 도움이 :) P.S -이 나쁜 프로그래밍 연습면 사람들이 그것에 대해 논평하면 감사하겠습니다. 나는 이것에 아주 새롭다!

관련 문제