Android-манифест всплеск Привет, мир, полные шары вверх

#android #splash-screen

#Android #заставка

Вопрос:

У меня было полностью функциональное приложение, если вы могли бы назвать hello world полностью функциональным. Было 3 вкладки, каждая из которых что-то делала, и перед ней появлялся всплеск.

Я думаю, что совершил ошибку, попытавшись использовать Google api для запуска некоторых функций gps, и каким-то образом мне удалось заблокировать мой проект и резервные версии. итак, прямо сейчас я просто пытаюсь собрать все это вместе, прежде чем отправить его по электронной почте своему лектору.

ВОПРОС: При настройке конфигурации запуска для запуска заставки я получаю множество ошибок по завершении заставки. Я полный новичок, поэтому я не знаю, какая часть того, что осталось от моего кода, неверна. Я подозреваю, что это либо манифест, либо указатель на код заставки.

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 amp;amp; (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:

Ошибка говорит о том, что он не может найти «HelloWorldfinalActivity», и ваш манифест определяет «HelloWorldFinalActivity» — строчная буква f в первом случае, прописная буква F во втором.

Имена ваших действий в манифесте должны совпадать с именами классов, которые вы даете своей деятельности, с «.» перед ними. Например, если у вас есть HelloWorldFinalActivity.class тогда имя в манифесте должно быть «.HelloWorldFinalActivity».

Кроме того, есть более простой способ начать действие:

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

Замените CurrentActivityName именем класса, в котором находится этот код.