#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 именем класса, в котором находится этот код.