2016-11-01 13 views
0

Googleのチュートリアルを使用してAndroidのプログラミング方法を学び始めましたが、大きな問題がありました。新しいアクティビティを開始するたびに、アプリがクラッシュする

私はクリックすると別の画面(アクティビティ)に切り替える必要がありますが、私がアプリケーションを実行するたびにクラッシュします。

これは、ボタンがクリックされたときに、次の活動を開始すべきコードです:

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> 

クラッシュログ:

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

ポストログ:あなたはこのように、ここからあなたの活動の方向のような他の特性をも設定することができます

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

は、マニフェストファイルにコードの下に追加します。 – 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:あなたのログを1として

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マニフェストファイルにあなたの活動を宣言することを忘れそうです。 したがって、プロジェクトのすべてのアクティビティをマニフェストファイルで宣言する必要があります。クラッシュから

<activity 
     android:name=".BeginShoppingScreen" 
     android:screenOrientation="portrait"> 
</activity> 
関連する問題