0

我开始了一个新的应用程序,在解决了我的问题后,我开始制作它。在此过程中,我制作了一个简单的初始屏幕,但是当我启动模拟器时,它会安装并且不会运行。

XML 清单

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

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

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

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.example.pathfinderapprentice.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="com.example.pathfinderapprentice.MAIN_ACTIVITY" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>

</manifest>

还有java类

package com.example.pathfinderapprentice;


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

public class Splash extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);
        Thread timer = new Thread() {
            public void run() {
                try {
                    sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } finally {
                    Intent openStartingPoint = new Intent(
                            "com.example.pathfinderapprentice.MAIN_ACTIVITY");
                    startActivity(openStartingPoint);
                }
            }
        };
        timer.start();
    }

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        finish();
    }
}

提前致谢

4

3 回答 3

2

您还没有定义一个名为

com.example.pathfinderapprentice.Splash

在您的清单中。纠正一下:

    <activity
        android:name="android.intent.action.MAIN"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="com.example.pathfinderapprentice.SPALSH" />

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

    <activity
        android:name="com.example.pathfinderapprentice.Splash"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
于 2013-04-04T14:29:18.650 回答
0

您的清单文件中有问题。当您在清单中声明了两次相同的活动或您将两个活动定义为主要活动时,就会发生此错误。

在活动标签中,您将名称定义为 android:name="android.intent.action.MAIN"

你必须像这样在这里定义名称

android:name="com.example.pathfinderapprentice.MainActivity"

并且不要修改内部意图。

您的活动标签应如下所示

<application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".Convert"
                  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>
于 2013-04-04T14:31:47.300 回答
0

首先,您的清单是错误的:

    <activity
        android:name="android.intent.action.MAIN"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="com.example.pathfinderapprentice.SPALSH" />

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

应该

    <activity
        android:name=".Splash"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

最重要的是,您不应该为这种计时器使用线程,只需使用 aHandler然后使用postDelayed()or postAtTime()

于 2013-04-04T14:35:17.027 回答