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 に答える