Android Manifest Splash Hello World Complete Balls up

时间:2011-10-24 05:37:45

标签: android splash

我有一个功能齐全的应用程序,如果你可以称呼hello world完全正常运行。 有3个标签,每个标签都做了一些事情,然后就会出现问题。

我认为我犯了一个错误,试图使用谷歌api来获取一些gps的东西,并以某种方式设法bork我的项目和备份版本。所以现在我只是想把它全部重新组合在一起,然后再把它发给我的讲师。

问题:当设置运行配置以启动启动时,我会在启动完成时收到大量错误。我是一个完整的新手,所以我不知道我的代码中剩下的部分是错误的。我怀疑它是清单或启动代码意图指针。

logcat的

10-24 05:28:08.297: D/dalvikvm(612): GC_EXTERNAL_ALLOC freed 673 objects / 52920 bytes in 136ms
10-24 05:28:13.185: W/dalvikvm(612): threadid=7: thread exiting with uncaught exception (group=0x4001d800)
10-24 05:28:13.195: E/AndroidRuntime(612): FATAL EXCEPTION: Thread-8
10-24 05:28:13.195: E/AndroidRuntime(612): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.b00517566.helloworldfinal/com.b00517566.helloworld.HelloWorldfinalActivity}; have you declared this activity in your AndroidManifest.xml?
10-24 05:28:13.195: E/AndroidRuntime(612):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1404)
10-24 05:28:13.195: E/AndroidRuntime(612):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378)
10-24 05:28:13.195: E/AndroidRuntime(612):  at android.app.Activity.startActivityForResult(Activity.java:2817)
10-24 05:28:13.195: E/AndroidRuntime(612):  at android.app.Activity.startActivity(Activity.java:2923)
10-24 05:28:13.195: E/AndroidRuntime(612):  at com.b00517566.helloworldfinal.splash$1.run(splash.java:37)

清单

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

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

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".HelloWorldFinalActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

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

        <activity android:name="ButtonTab">
            <intent-filter></intent-filter>
        </activity>
        <activity android:name="MiscTab">
            <intent-filter></intent-filter>
        </activity>
        <activity android:name="RadioBtnsTab">
            <intent-filter></intent-filter>
        </activity>


    </application>

</manifest>

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);


        // thread for displaying the SplashScreen
        Thread splashTread = new Thread() {
            @Override
            public void run() {
                try {
                    int waited = 0;
                    while(_active && (waited < _splashTime)) {
                        sleep(100);
                        if(_active) {
                            waited += 100;
                        }
                    }
                } catch(InterruptedException e) {
                    // do nothing
                } finally {
                    finish();
                    Intent i = new Intent();
                    i.setClassName("com.b00517566.helloworldfinal",
"com.b00517566.helloworld.HelloWorldfinalActivity");
                    startActivity(i);
                    //startActivity(new Intent("com528.b00517566.helloworld"));
                   // stop();
                }
            }
        };
        splashTread.start();


    }

1 个答案:

答案 0 :(得分:1)

错误说它找不到“HelloWorldfinalActivity”并且你的清单定义了“HelloWorldFinalActivity” - 第一种情况下为小写字母f,第二种情况下为大写字母F.

清单中的活动名称应与您为活动提供的“。”类名称相同。在他们面前。例如,如果你有一个HelloWorldFinalActivity.class,那么清单中的名称应为“.HelloWorldFinalActivity”。

此外,还有一种更简单的方式来开展活动:

Intent i = new Intent(CurrentActivityName.this, com.b00517566.helloworldfinal.HelloWorldFinalActivity.class)
startActivity(i);

将CurrentActivityName替换为此代码所在类的名称。