#android #android-intent #android-activity #crash
#Android #android-намерение #android-активность #сбой
Вопрос:
Я в тупике. Я разрабатываю приложение для своей пожарной службы, и у меня, вероятно, вопиющая ошибка, которую я не могу найти. Я пытаюсь запустить второе действие из своего первого действия, и приложение завершается с ошибкой. Logcat спрашивает, объявил ли я свою активность, и я это сделал.
Вот мой манифест:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
<activity android:name="com.HCFD.scenenotes.BrushNotes" />
<activity
android:name="com.HCFD.scenenotes.MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme">"
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
И вот цель:
Intent openBrushNotes = new Intent(this, BrushNotes.class);
И вот вызов, при котором происходит сбой моего приложения:
public void openNewNotes(int a){
Log.i(TAG, "Open New Notes from button " a);
switch(a){
case 1:
startActivity(openBrushNotes);
break;
Может ли кто-нибудь указать мне правильное направление относительно того, чего мне явно не хватает? Если это имеет значение, я разрабатываю Eclipse ADT под Windows 8.1
На данный момент все мои примечания:
package com.HCFD.scenenotes;
импорт android.app.Activity;
импорт android.os.bundle;
public class BrushNotes extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle brushBundle) {
super.onCreate(brushBundle);
setContentView(R.layout.brush_notes);
}
}
Logcat:
06-21 18:58:19.997: E/AndroidRuntime(21305): FATAL EXCEPTION: main
06-21 18:58:19.997: E/AndroidRuntime(21305): Process: com.HCFD.scenenotes, PID: 21305
06-21 18:58:19.997: E/AndroidRuntime(21305): android.content.ActivityNotFoundException: Unable to find explicit activity class {/com.HCFD.scenenotes.BrushNotes}; have you declared this activity in your AndroidManifest.xml?
06-21 18:58:19.997: E/AndroidRuntime(21305): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1648)
06-21 18:58:19.997: E/AndroidRuntime(21305): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1442)
06-21 18:58:19.997: E/AndroidRuntime(21305): at android.app.Activity.startActivityForResult(Activity.java:3474)
06-21 18:58:19.997: E/AndroidRuntime(21305): at android.app.Activity.startActivityForResult(Activity.java:3435)
06-21 18:58:19.997: E/AndroidRuntime(21305): at android.app.Activity.startActivity(Activity.java:3677)
06-21 18:58:19.997: E/AndroidRuntime(21305): at android.app.Activity.startActivity(Activity.java:3645)
06-21 18:58:19.997: E/AndroidRuntime(21305): at com.HCFD.scenenotes.MainActivity.openNewNotes(MainActivity.java:146)
06-21 18:58:19.997: E/AndroidRuntime(21305): at com.HCFD.scenenotes.MainActivity$2$1.onClick(MainActivity.java:125)
06-21 18:58:19.997: E/AndroidRuntime(21305): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
06-21 18:58:19.997: E/AndroidRuntime(21305): at android.os.Handler.dispatchMessage(Handler.java:102)
06-21 18:58:19.997: E/AndroidRuntime(21305): at android.os.Looper.loop(Looper.java:157)
06-21 18:58:19.997: E/AndroidRuntime(21305): at android.app.ActivityThread.main(ActivityThread.java:5293)
06-21 18:58:19.997: E/AndroidRuntime(21305): at java.lang.reflect.Method.invokeNative(Native Method)
06-21 18:58:19.997: E/AndroidRuntime(21305): at java.lang.reflect.Method.invoke(Method.java:515)
06-21 18:58:19.997: E/AndroidRuntime(21305): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
06-21 18:58:19.997: E/AndroidRuntime(21305): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
06-21 18:58:19.997: E/AndroidRuntime(21305): at dalvik.system.NativeStart.main(Native Method)
Комментарии:
1. Не могли бы вы опубликовать logcat? Просто чтобы убедиться, действительно
BrushNotes
ли расширяетсяActivity
и находится в пакетеcom.HCFD.scenenotes
?2. Отправлен Logcat. Я также проверил, чтобы убедиться, что я не пропустил расширенную активность.
3. Нашел его. Я объявил намерение в неправильном месте. У меня это было выше метода onCreate. Теперь я переместил ее внутрь case 1: и изменил контекст с this на MainActivity.this