2014-04-01 25 views
1

我有一個奇怪的錯誤,這裏是我的代碼的Android應用程序崩潰的意圖

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(); 

我想做的事情後的.com /越來越值了」,在字符串‘這是abcabc1什麼’和然後打開一個新的網址「www.website2.com/abcabc1」,但是我遇到的問題是應用程序在啓動時崩潰。我試圖發現問題的根源,我發現如果我的代碼是:

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

這將工作沒有任何問題,但如果它是這樣的:

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

應用程序將崩潰。

注意如果我嘗試將字符串url設置爲textview文本,它將以正確的格式顯示它,但是如果我將它傳遞給瀏覽器,它會崩潰。對不起,我的可憐的語言,並提前感謝。

更新: 目錄下載:

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

您必須設置"http://"您的網址之前,它會努力!

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

+2

它現在有效!我不能相信我忘了這部分!非常感謝 – AlphaCode

+1

@ user3472788不要忘記檢查這是一個正確的答案;) – Sadegh

0

如果我可以提一個建議,遵循同樣的問題(我花了小時,以找出!!) - 我現在添加下面的代碼片段(特別是在我詢問用戶的情況下, URL,但似乎即使是在我自己爲它供給的情況下是一個好主意,因爲我傾向於把它忘了自己):

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

websitString當然包含輸入的URL字符串。 跳這有助於:) P.S - 如果這是不好的編程習慣,我會很感激,如果人們評論它。我很新!