Android错误:" android.content.ActivityNotFoundException:找不到处理Intent的活动"

时间:2016-05-19 06:58:11

标签: java android android-intent android-permissions

我有问题要开始" DangerousActivity"在" Dangerous app"来自其他活动" GoToDangerousActivity"在另一个名为" Permissionlab&#34 ;.需要帮助指出bug源!

点击" Go To DangerousActivity"按钮,我收到错误:

05-18 23:38:42.737: E/AndroidRuntime(7364): FATAL EXCEPTION: main
05-18 23:38:42.737: E/AndroidRuntime(7364): Process: course.labs.permissionslab, PID: 7364
05-18 23:38:42.737: E/AndroidRuntime(7364): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=course.labs.permissions.DANGEROUS_ACTIVITY }

这是Dangerous app的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="course.labs.dangerousapp"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="13"
        android:targetSdkVersion="18" />
    <!--
          TODO - Using a permission element,
          define a custom permission with name
              "course.labs.permissions.DANGEROUS_ACTIVITY_PERM" 
          and "dangerous" protection level.
    -->
    <Permission
        android:name="course.labs.permissions.DANGEROUS_ACTIVITY_PERM" 
        android:protectionLevel="dangerous"
    />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" 
        android:permission="course.labs.permissions.DANGEROUS_ACTIVITY_PERM" 
       >
        <!-- TODO - enforce the custom permission on this Activity 
        **i added below to test**-->
        <activity
            android:name=".DangerousActivity"
            android:label="@string/app_name" 
            android:permission="course.labs.permissions.DANGEROUS_ACTIVITY_PERM"
            >
            <!--
                 TODO - add additional intent filter info so that this Activity
                  will respond to an Implicit Intent with the action
                  "course.labs.permissions.DANGEROUS_ACTIVITY"             
            --> 
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="course.labs.permissions.DANGEROUS_ACTIVITY"/>
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>

</manifest>

这是Permissionlab的表现:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="course.labs.permissionslab"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <!--  TODO - add uses-permission elements -->
   <uses-permission android:name="course.labs.permissions.DANGEROUS_ACTIVITY_PERM" />

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

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".BookmarksActivity"
            android:label="@string/title_permissions" >
        </activity>
        <activity
            android:name=".GoToDangerousActivity"
            android:label="@string/title_activity_customization" >
        </activity>
    </application>

</manifest>

我的GoToDangerousActivity代码:

public class GoToDangerousActivity extends Activity {

private static final String TAG = "Lab-Permissions";

private static final String DANGEROUS_ACTIVITY_ACTION = "course.labs.permissions.DANGEROUS_ACTIVITY";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.go_to_dangerous_activity);

    Button startDangerousActivityButton = (Button) findViewById(R.id.start_dangerous_activity_button);
    startDangerousActivityButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            startDangerousActivity();
        }
    });
}
private void startDangerousActivity() {

    Log.i(TAG, "Entered startDangerousActivity()");

    startActivity(new Intent(DANGEROUS_ACTIVITY_ACTION));  // anonimous intent  

}

}

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。重启虚拟设备对我有所帮助。我认为这是因为重新启动后android是新的