2012-01-12 15 views
0

こんにちは皆私は奇妙な問題に苦しんでいます。 私はViewPlipperをViewPagerに変更しました。そこから私のAppがクラッシュしました。クラッシュするのはViewPagerではなく、button.setOnClickListenerメソッドであることがわかりました。私は他のすべてをコメントしたので、私はそのメソッドで私の2つのボタンをコメントしている場合、アプリケーションが正常に動作することに気づいた。そして、それは)のonClick(内部のことではない、私はそれをtreiedし、それがここにempty.butいても、クラッシュと戦っ1つのイムのいくつかのコードです:onClickListenerを設定するとアプリがクラッシュしますか?

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 




    MyPagerAdapter adapter = new MyPagerAdapter(); 
     ViewPager myPager = (ViewPager)findViewById(R.id.pager); 
     myPager.setAdapter(adapter); 
     myPager.setCurrentItem(1); 
    new Toolbox();  

push = (Button)findViewById(R.id.pushbutton); 
      push.setOnClickListener(new OnClickListener() { 


       public void onClick(View v) { 
        head=head_field.getText().toString(); 
        note=note_field.getText().toString(); 
        try { 
         Toolbox.createTask(userToken,task, Dashboard_id, head, note, service); 
         head_field.setText(""); 
         note_field.setText(""); 
        } catch (ProducteevException e) { 
         return; 

        } 
       } 
      }); 

これは、ボタンのXMLの抜粋です:

<Button 
      android:id="@+id/pushbutton" 
      android:layout_width="200dp" 
      android:layout_height="200dp" 
      android:layout_gravity="center_horizontal" 
      android:layout_marginTop="35dp" 
      android:background="@drawable/push_button" /> 

、ここで誰かがその問題を知っている場合LogCat

01-12 20:50:24.402: W/dalvikvm(28405): threadid=1: thread exiting with uncaught exception (group=0x40015578) 
01-12 20:50:24.402: E/AndroidRuntime(28405): FATAL EXCEPTION: main 
01-12 20:50:24.402: E/AndroidRuntime(28405): java.lang.RuntimeException: Unable to start activity ComponentInfo{producteev.push/producteev.push.Producteev_pushActivity}: java.lang.NullPointerException 
01-12 20:50:24.402: E/AndroidRuntime(28405): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) 
01-12 20:50:24.402: E/AndroidRuntime(28405): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 
01-12 20:50:24.402: E/AndroidRuntime(28405): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
01-12 20:50:24.402: E/AndroidRuntime(28405): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 
01-12 20:50:24.402: E/AndroidRuntime(28405): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-12 20:50:24.402: E/AndroidRuntime(28405): at android.os.Looper.loop(Looper.java:123) 
01-12 20:50:24.402: E/AndroidRuntime(28405): at android.app.ActivityThread.main(ActivityThread.java:3687) 
01-12 20:50:24.402: E/AndroidRuntime(28405): at java.lang.reflect.Method.invokeNative(Native Method) 
01-12 20:50:24.402: E/AndroidRuntime(28405): at java.lang.reflect.Method.invoke(Method.java:507) 
01-12 20:50:24.402: E/AndroidRuntime(28405): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) 
01-12 20:50:24.402: E/AndroidRuntime(28405): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
01-12 20:50:24.402: E/AndroidRuntime(28405): at dalvik.system.NativeStart.main(Native Method) 
01-12 20:50:24.402: E/AndroidRuntime(28405): Caused by: java.lang.NullPointerException 
01-12 20:50:24.402: E/AndroidRuntime(28405): at producteev.push.Producteev_pushActivity.onCreate(Producteev_pushActivity.java:122) 
01-12 20:50:24.402: E/AndroidRuntime(28405): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
01-12 20:50:24.402: E/AndroidRuntime(28405): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) 
01-12 20:50:24.402: E/AndroidRuntime(28405): ... 11 more 

は素晴らしいだろう。

+0

01-12 20この行を参照してください:50:24.402:E/AndroidRuntime(28405):producteev.push.Producteev_pushActivity.onCreate(Producteev_pushActivity.java:122) で、これはあなたの親友である、あなたのために見て学びますパッケージ名はクラッシュの原因を見つける –

答えて

0

私はあなたのコードの全体を見ることができないので、確かに知ることは難しいのですが、それ...あなたのfindViewById()がnullを返すように見える、

+0

ええ、それはあなたがここに見る通りです:push =(Button)findViewById(R.id.pushbutton); == android:id = "@ + id/pushbutton"しかし、あなたが正しいです、それはnullを返します! – Florian

+0

私はそれを参照していますが、クリックリスナーを設定している行にブレークポイントを設定して、プッシュボタンオブジェクトがヌルであるかどうかを確認できます – Cata

+0

nullを返した場合は、 – Cata

0

をあなたのプッシュブトンidはcorectであることを確認してくださいスタックトレースから、作成時にエラーがスローされているようです。 onClick()メソッド内で何も起こらないので、私が考えることができる唯一の他の事は、あなたが投稿したコードからpushがnullでなければならないという事実です。これは問題の場合、IDが間違っている(findViewById()呼び出しに渡される)か、またはコンパイラが渡しているIDで正常に表示されている場合に発生している可能性がありますコンパイルされていない場合)、正しく動作していない(Button)のキャストが考えられます。私はあなたのR.id.pushbuttonの実際のクラスタイプのタイプをチェックし、それが(Button)であることを確認します。

+0

もちろん、XMLで見られるようにボタンです。EclipseにはR.id.pushbuttonもOKであり、それも正しいものです。 – Florian

+0

ああ、上記のXMLを見落としてしまいました... findViewByID()メソッドをオーバーライドしていて何かがそこに返されていない可能性がありますか?つまり、そのオーバーライドから何とかnullを戻していますか?このJavaが存在するクラスをもっと見ると、可能であれば、デバッグを容易にすることができます。 – waxspin

+0

が解決しました。愚かな間違い。私はViewPagerを追加したときにメインレイアウトを変更したので、ButtonはMain Anymoreにはないので、findViewByIdは何も見つけられませんでした。今私はLayouInflaterを使って適切なViewを取得しました。おかげで多くの – Florian

関連する問題