已安装Android应用但无法运行

时间:2013-04-04 14:23:54

标签: android xml splash-screen

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

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();
    }
}

提前致谢

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

您的清单文件中存在问题。如果您在清单中两次声明了相同的活动,或者您已将两个活动定义为主要活动,则会发生错误。

在活动代码中,您将名称定义为     机器人:名称= “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>

答案 2 :(得分: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>

除此之外,您不应该使用线程进行此类计时器,只需使用Handler,然后使用postDelayed()postAtTime()