我开始了一个新的应用程序,在解决了我的问题后,我开始制作它。在这个过程中,我制作了一个简单的启动画面,但是当我启动模拟器时,它会安装并且不会运行。
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();
}
}
提前致谢
答案 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()
。