Java 使用action\u view intent后Android应用程序崩溃

Java 使用action\u view intent后Android应用程序崩溃,java,android,eclipse,Java,Android,Eclipse,我有一个奇怪的错误,这是我的代码 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);

我有一个奇怪的错误,这是我的代码

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();
我想做的是获取字符串a中.com/“之后的值,它是abcabc1”,然后打开一个新的url,它将是“www.website2.com/abcabc1”,但我遇到的问题是应用程序在启动时崩溃。我试图发现问题的根源,我发现如果我的代码是:

String url = "www.website2.com/";
它将毫无问题地工作,但如果是这样:

String url = "www.website2.com/" + b;
应用程序将崩溃

注意:如果我试图将字符串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
您必须在url之前设置
“http://”
,它就会工作


stringurl=”http://www.website2.com/“+b;

如果我可以提出建议的话,在同样的问题之后(花了我几个小时来解决!!)-我现在添加以下代码片段(特别是在我要求用户提供url的情况下,但即使是在我自己提供url的情况下,这似乎也是个好主意,因为我自己往往会忘记):

websitString
当然是包含输入URL的字符串。 这有助于:)
如果这是一个糟糕的编程实践,如果有人对此发表评论,我将不胜感激。我在这方面非常新!

@OjonugwaOchalifu我已经将它添加到了问题中。它现在起作用了!我不敢相信我忘记了这一部分!非常感谢much@user3472788别忘了将此作为正确答案进行检查;)
if (!(websiteString.contains("http://"))) {
            websiteString = "http://" + websiteString;
        }