12

我正在尝试做像从我的应用程序打开网页一样简单的事情。我认为代码应该如下所示,但是在执行代码时我不断收到错误“未找到活动”:

    public class MainActivity extends Activity {
    public static final String MY_STRING =  "com..example.MY_STRING";
    Button button1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button1 = (Button) findViewById(R.id.button1);
        button1.setOnClickListener(clickListener);

    }    
    public OnClickListener clickListener = new  OnClickListener(){          
        @Override
        public void onClick(View arg0) {

            Intent launchBrowser = new Intent(Intent.ACTION_VIEW, Uri.parse("www.example.com"));                
            startActivity(launchBrowser);               
        }           
    };      
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

这是日志:

D/libEGL(11574): loaded /system/lib/egl/libGLES_android.so
D/libEGL(11574): loaded /vendor/lib/egl/libEGL_mtk.so
D/libEGL(11574): loaded /vendor/lib/egl/libGLESv1_CM_mtk.so
D/libEGL(11574): loaded /vendor/lib/egl/libGLESv2_mtk.so
D/OpenGLRenderer(11574): Enabling debug mode 0
V/Provider/Setting(11574): invalidate [system]: current 109 != cached 0
D/AndroidRuntime(11574): Shutting down VM
W/dalvikvm(11574): threadid=1: thread exiting with uncaught exception (group=0x40ca8258)
E/AndroidRuntime(11574): FATAL EXCEPTION: main
E/AndroidRuntime(11574): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=www.example.com }
E/AndroidRuntime(11574):    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1518)
E/AndroidRuntime(11574):    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1390)
E/AndroidRuntime(11574):    at android.app.Activity.startActivityForResult(Activity.java:3204)
E/AndroidRuntime(11574):    at android.app.Activity.startActivity(Activity.java:3311)
E/AndroidRuntime(11574):    at com.example.openwebpage.MainActivity$1.onClick(MainActivity.java:40)
E/AndroidRuntime(11574):    at android.view.View.performClick(View.java:3517)
E/AndroidRuntime(11574):    at android.view.View$PerformClick.run(View.java:14155)
E/AndroidRuntime(11574):    at android.os.Handler.handleCallback(Handler.java:605)
E/AndroidRuntime(11574):    at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime(11574):    at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(11574):    at android.app.ActivityThread.main(ActivityThread.java:4503)
E/AndroidRuntime(11574):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(11574):    at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(11574):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
E/AndroidRuntime(11574):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
E/AndroidRuntime(11574):    at dalvik.system.NativeStart.main(Native Method)

这是我的清单:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.openwebpage.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

4

4 回答 4

25

只是猜测,但您可能缺少http://前缀。尝试

Intent launchBrowser = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.example.com"));
于 2013-09-26T21:26:09.690 回答
2

通过浏览器启动网站的正确方法是

Intent viewIntent = new Intent("android.intent.action.VIEW", Uri.parse("http://www.google.com"));
startActivity(viewIntent);
于 2013-09-26T23:09:44.213 回答
1

出于某种原因,现在它正在使用那些添加的“http://”

在我重新启动设备后,添加“http://”再次运行它,它成功了。

于 2013-09-27T09:06:54.010 回答
1

有时大写字母会导致该问题。尝试使 URL 小写。

于 2017-11-10T00:01:53.023 回答