2016-11-01 6 views
0

Я начал учиться программированию на Android с помощью учебных пособий Google, но у меня была огромная проблема.Всякий раз, когда я запускаю новую активность, мое приложение вылетает

У меня есть кнопка, которая при нажатии должна переключать пользователя на другой экран (Activity), но всякий раз, когда я запускаю приложение, он выходит из строя.

Это код, который должен начать следующий активность, когда кнопка нажата:

public void addListenerOnButton() { 

    Button button = (Button) findViewById(R.id.BeginShoppingButton); 

    button.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 

      Intent beginShopping = new Intent(getApplicationContext(), BeginShoppingScreen.class); 
      startActivity(beginShopping); 

     } 

    }); 
} 

Этот метод вызывается в методе onCreate() так, чтобы слушатель активно.

Это XML для основного вида деятельности:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="eddgroceryapp.cartcourse2.Activities.MainActivity"> 

<Button 
    android:text="Begin Shopping" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/BeginShoppingButton" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentStart="true" /> 

<Button 
    android:text="Browse Stores" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/button2" 
    android:layout_below="@+id/BeginShoppingButton" 
    android:layout_alignParentStart="true" 
    android:onClick="findAStore"/> 

<Button 
    android:text="Report Locations" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="48dp" 
    android:id="@+id/ReportLocationsButton" 
    android:layout_below="@+id/BeginShoppingButton" 
    android:layout_alignParentStart="true" 
    android:onClick="findAStore"/> 
</RelativeLayout> 

И это XML для другой деятельности:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<Button 
    android:text="Choose From Saved Lists" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/Choose" /> 

<Button 
    android:text="Create A List" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/Create" /> 

<Button 
    android:text="Use Someone Else's List" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/button4" /> 
</LinearLayout> 

Краш Log:

11-01 13:51:28.166 1345-1345/eddgroceryapp.cartcourse2 E/AndroidRuntime: FATAL EXCEPTION: main 
Process: eddgroceryapp.cartcourse2, PID: 1345 
android.content.ActivityNotFoundException: Unable to find explicit activity class {eddgroceryapp.cartcourse2/eddgroceryapp.cartcourse2.Activities.BeginShoppingScreen}; have you declared this activity in your AndroidManifest.xml? 
    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1855) 
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1546) 
    at android.app.Activity.startActivityForResult(Activity.java:4284) 
    at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:48) 
    at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:75) 
    at android.app.Activity.startActivityForResult(Activity.java:4231) 
    at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:856) 
    at android.app.Activity.startActivity(Activity.java:4568) 
    at android.app.Activity.startActivity(Activity.java:4536) 
    at eddgroceryapp.cartcourse2.Activities.MainActivity$1.onClick(MainActivity.java:58) 
    at android.view.View.performClick(View.java:5698) 
    at android.widget.TextView.performClick(TextView.java:10850) 
    at android.view.View$PerformClick.run(View.java:22523) 
    at android.os.Handler.handleCallback(Handler.java:739) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:158) 
    at android.app.ActivityThread.main(ActivityThread.java:7230) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
11-01 13:51:31.951 1345-1345/eddgroceryapp.cartcourse2 I/Process: Sending signal. PID: 1345 SIG: 9 
+2

почтовые журналы от аварии. – Abbas

+0

Я разместил его. Извините за форматирование. – Dakota

+2

Прочитать ошибку. 'BeginShoppingScreen}; объявили ли вы эту активность в своем AndroidManifest.xml? ' –

ответ

2

Вы добавили <activity> тег для BeginShoppingScreen в Manifest.xml, как показано ниже:

<activity 
android:name="your.package.name.BeginShoppingScreen" 
android:label="@string/app_name" 
/> 

EDIT:

По журналам:

android.content.ActivityNotFoundException: Не удается найти явный класс активность {eddgroceryapp.cartcourse2/eddgroceryapp.cartcourse2.Activities.BeginShoppingScreen }; Вы объявили эту активность в своем AndroidManifest.xml?

Добавить ниже код в вас файле манифеста:

<activity 
android:name="eddgroceryapp.cartcourse2.Activities.BeginShoppingScreen" 
android:label="@string/app_name" 
/> 
+0

Большое спасибо! это была проблема. – Dakota

+0

'android: label' не требуется –

+1

нет,' android: label' не требуется. –

0

Кажется, вы забыли объявить вашу деятельность в Android Manifest файл. Итак, все действия из вашего проекта должны быть объявлены в файле манифеста.

Добавить ниже код в ваш файл манифеста:

<activity android:name=".BeginShoppingScreen"/> 

Вы можете также установить другие свойства, как ориентации деятельности здесь, как это:

<activity 
     android:name=".BeginShoppingScreen" 
     android:screenOrientation="portrait"> 
</activity> 
Смежные вопросы