未找到活动异常无法找出错误

时间:2014-09-15 09:14:38

标签: android android-activity

刚开始学习Android应用程序开发。 收到错误“android.content.activitynotfoundexception no activity found”

代码: - 我的Android Mainfest

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

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".SplashScreen"
            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>


        <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".StartingPointActivity"
            android:label="@string/app_name" >
            <intent-filter>
                 <action android:name="com.GTC.STARTINGPOINTACTIVITY" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>

</manifest>

和我的Splash Screen.java

package com.example.gtctest;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

public class SplashScreen extends Activity {

    @Override
    protected void onCreate(Bundle splashBundle) {
        // TODO Auto-generated method stub
        super.onCreate(splashBundle);
        setContentView(R.layout.splash);

        Thread timer=new Thread() {

            public void run() {
                try {
                    sleep(3000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } finally {
                    Intent openStartingPointActivityIntent=new Intent("com.GTC.STARTINGPOINTACTIVITY");
                    startActivity(openStartingPointActivityIntent);
                }
            }
        };
        timer.start();
    }

    @Override
    protected void onPause() {
        super.onPause();
        finish();
    }

}

错误: -

09-15 14:31:19.587: E/AndroidRuntime(1088): FATAL EXCEPTION: Thread-123
09-15 14:31:19.587: E/AndroidRuntime(1088): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.GTC.STARTINGPOINTACTIVITY }
09-15 14:31:19.587: E/AndroidRuntime(1088):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1512)
09-15 14:31:19.587: E/AndroidRuntime(1088):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1384)
09-15 14:31:19.587: E/AndroidRuntime(1088):     at android.app.Activity.startActivityForResult(Activity.java:3190)
09-15 14:31:19.587: E/AndroidRuntime(1088):     at android.app.Activity.startActivity(Activity.java:3297)
09-15 14:31:19.587: E/AndroidRuntime(1088):     at com.example.gtctest.SplashScreen$1.run(SplashScreen.java:28)

不知道出了什么问题。请帮忙解决这个问题 还有一个问题 在android mainfest中,名称操作名称可以是任何内容,或者它必须是来自包的路径,如“ com.GTC.classname

4 个答案:

答案 0 :(得分:0)

您的清单中有两个应用程序标记。用两个活动将其改为一个

答案 1 :(得分:0)

创建意图如下......

Intent intentname =new Intent(SplashScreen.this,StartingPointActivity.class);
startActivity(intentname);

更改 AndroidManifest.xml 文件..

您已定义了两个<application>代码....

删除它并将其更改为以下..

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

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

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

        <!-- add new activities like this -->
        <activity
            android:name=".StartingPointActivity"
            android:label="@string/app_name" >

        <!-- if your activity in different package you can define like this... (xx.xxx is your package name define your package name there..) 
        <activity
            android:name="xx.xxx.StartingPointActivity"
            android:label="@string/app_name" > 
         -->

    </application>

</manifest>

答案 2 :(得分:0)

请修改你的清单:

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

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

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

        <activity
            android:name=".StartingPointActivity"
            android:label="@string/app_name" >
            <intent-filter>
                 <action android:name="com.GTC.STARTINGPOINTACTIVITY" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>
</manifest>

ps:在android mainfest中,动作名称可以是任何东西,但我们曾经把它变成“com.xxx.intent.action.XXX”。

答案 3 :(得分:0)

请尝试这种方式,希望这有助于您解决问题。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.gtctest"
    android:versionCode="1"
    android:versionName="1.0" >

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".SplashScreen"
            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>


    <activity
        android:name=".StartingPointActivity"
        android:label="@string/app_name"/>

</manifest>

public class SplashScreen extends Activity {

    @Override
    protected void onCreate(Bundle splashBundle) {
        // TODO Auto-generated method stub
        super.onCreate(splashBundle);
        setContentView(R.layout.splash);

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent intent = new Intent(SplashScreen.this,StartingPointActivity.class);
                startActivity(intent);
                finish();
            }
        },3000);
    }

    @Override
    protected void onPause() {
        super.onPause();
    }
}