0

1 つのアクティビティのみを使用して小さなプロジェクトを開発しました。現在、新しいアクティビティを追加しようとしていますが、デバイスでプロジェクトを起動しようとすると、次のエラーが表示されます。

実行中の com.android.gl2jni/.TestActivity... 1> 開始: インテント { cmp=com.android.gl2jni/.TestActivity } 1> 1> java.lang.SecurityException: 許可拒否: 開始インテント { flg=0x10000000 cmp= com.android.gl2jni/.TestActivity } from null (pid=2935, uid=2000) には null が必要

新しいアクティビティを呼び出そうとしているのではなく、アプリを起動できない理由を確認するために空のアクティビティを開発しました。

これは私のマニフェストです:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.gl2jni">


  <uses-feature android:glEsVersion="0x00020000"/>

  <uses-sdk android:minSdkVersion="9"/>

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

  <uses-permission android:name="android.permission.CAMERA"/>
  <uses-feature android:name="android.hardware.camera" />
  <uses-feature android:name="android.hardware.camera.autofocus" />

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

  <application
          android:label="@string/gl2jni_activity">

    <!--main activity-->

    <activity android:name=".GL2JNIActivity"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:launchMode="singleTask"
        android:configChanges="keyboardHidden"
        android:screenOrientation="landscape"
            >
      <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>

    <!--BT device list activity-->

    <activity android:name=".TestActivity"
              >
      <intent-filter>
      </intent-filter>
    </activity>


    <!--
      <activity android:name=".BluetoothDeviceListActivity"
                  android:label="@string/select_device"
                  android:theme="@android:style/Theme.Dialog"
                  android:configChanges="keyboardHidden" 
                          android:screenOrientation="landscape"
                  />
    -->

  </application>

</manifest>

そして、これは空のアクティビティ クラスです。

package com.android.gl2jni;

import android.app.Activity;
import android.util.Log;
import android.os.Bundle;

public class TestActivity extends Activity {

    @Override protected void onCreate(Bundle icicle) {
        LogConsole.print( "HI, I AM TestActivity" );
    }

}

もっと何かを変更する必要があると思いますが、何がわかりません... 事前に助けてくれてありがとう。

4

1 に答える 1

1

TestActivity に空のインテント フィルタを指定しました。空のインテント フィルタは、どのインテントにも一致しません。TestActivity のブロックから次の行を削除します。

  <intent-filter>
  </intent-filter>

また、onCreate()of でTestActivityを呼び出す必要がありますsuper.onCreate()。そうしないと、Android がクラッシュします。

于 2012-05-09T16:24:29.073 に答える