11

我正在尝试来自 svn.apache.org 的 http-cleint 教程。运行应用程序时,我在控制台中收到以下错误。

[2010-04-30 09:26:36 - HalloAndroid] ActivityManager: java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.org.example/.HalloAndroid } from null (pid=-1, uid=-1) requires android.permission.INTERNET

我在 AndroidManifest.xml 中添加了 android.permission.INTERNET。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.org.example"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".HalloAndroid"
                  android:label="@string/app_name" android:permission="android.permission.INTERNET">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

</manifest>

HalloAndroid.java中的java代码如下

 HttpClient httpclient = new DefaultHttpClient();
    HttpGet httpget2 = new HttpGet("http://google.com/");
        HttpResponse response2 = null;
        try {
            response2 = httpclient.execute(httpget2);
        } catch (ClientProtocolException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    HttpEntity entity = response2.getEntity();
    if (entity != null) {
        long len = entity.getContentLength();
        if (len != -1 && len < 2048) {
            try {
                    Log.d(TAG, EntityUtils.toString(entity));
                } catch (ParseException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
        } else {
            // Stream content out
        }

任何帮助深表感谢。

4

1 回答 1

9

问题解决了。AndroidManifest.xml 文件中的这一行导致了问题。

android:permission="android.permission.INTERNET"
于 2010-04-30T05:16:00.673 回答