2017-10-24 25 views
0

私のアプリケーションに問題があります。エミュレータで私のアプリケーションを起動し、私がランドスケープモードに切り替えるたびに、毎回クラッシュします。 しかし、ポートレートモードでは が問題ありません。これを解決するにはどうすればいいですか。ありがとうございました 進歩!アプリがランドスケープモードでクラッシュする

私が入れた。「アンドロイド:configChanges =」オリエンテーション|画面サイズ|私のマニフェストに 活動宣言でkeyboardHiddenを」まだクラッシュ

これはエラーです:java.lang.RuntimeException:活動ComponentInfoを開始することができません。 {com.example.a1697759.projetintra/com.example.a1697759.projetintra.MainActivity}:java.lang.NullPointerException:仮想メソッド 'void android.view.View.setOnClickListener(android.view.View $ OnClickListener)'を呼び出そうとしていますnullオブジェクトリファレンスで

これは私のJavaコードです:

import android.content.Intent; 
import android.content.SharedPreferences; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.text.Editable; 
import android.text.TextWatcher; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Spinner; 
import android.widget.Toast; 

import static com.example.a1697759.projetintra.R.id.etTotalPrix; 

public class MainActivity extends AppCompatActivity { 

Button btnInscription; 
EditText etQuantite; 
Spinner spinner; 
Spinner spinner2;  


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    btnInscription = (Button) findViewById(R.id.btnInscription); 
    etQuantite = (EditText) findViewById(R.id.etQuantite); 
    EditText etTotalPrix; 
    spinner = (Spinner) findViewById(R.id.spinner); 
    spinner2 = (Spinner) findViewById(R.id.spinner2); 

    // Use a TextWatcher to disable/enable button 
    etQuantite.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void onTextChanged(CharSequence arg0, int arg1, int arg2, int 
arg3) {} 
     @Override 
     public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, 
int arg3) {} 

     @Override 
     public void afterTextChanged(Editable string) { 
      if(string.length() > 0) { 
       btnInscription.setEnabled(true); 
      } else { 
       btnInscription.setEnabled(false); 
      } 
     } 
    }); 


    btnInscription.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v){ 

      //Demarrer le nouvelle activite 
      Intent intent = new Intent(MainActivity.this, 
ResumeActivity.class); 

      //Spinner 1 
      Bundle b = new Bundle(); 
      b.putString("name", spinner.getSelectedItem().toString()); 
      intent.putExtras(b); 

      //Spinner 2 
      Bundle b2 = new Bundle(); 
      b2.putString("name2", spinner2.getSelectedItem().toString()); 
      intent.putExtras(b2); 

      //EditText Quantite 
      Bundle q = new Bundle(); 
      q.putString("name3", etQuantite.getText().toString()); 
      intent.putExtras(q); 


      //Reset spinner and editText 
      spinner.setSelection(0); 
      spinner2.setSelection(0); 
      etQuantite.setText(""); 

      Toast.makeText(MainActivity.this, "Vous avez fait votre 
commande",Toast.LENGTH_SHORT).show(); 

      startActivity(intent); 

     } 
    }); 
    } 
} 

E/AndroidRuntime:致命的な例外:メインそのためcreate a landscape layoutにあなたが持っている

Process: com.example.a1697759.projetintra, PID: 21317 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.a1697759.projetintra/com.example.a1697759.projetintra.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2947) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3008) 
    at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4974) 
    at android.app.ActivityThread.-wrap21(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:154) 
    at android.app.ActivityThread.main(ActivityThread.java:6688) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358) 
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference 
    at com.example.a1697759.projetintra.MainActivity.onCreate(MainActivity.java:56) 
    at android.app.Activity.performCreate(Activity.java:6912) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2900) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3008)  
    at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4974)  
    at android.app.ActivityThread.-wrap21(ActivityThread.java)  
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656)  
    at android.os.Handler.dispatchMessage(Handler.java:102)  
    at android.os.Looper.loop(Looper.java:154)  
    at android.app.ActivityThread.main(ActivityThread.java:6688)  
    at java.lang.reflect.Method.invoke(Native Method)  
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)  
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)  
+2

質問をエラーログ –

+2

で更新してください。stacktraceを印刷してください。https://stackoverflow.com/questions/7841232/java-android-how-to-print-out-a-full-stack-trace –

答えて

0

  • だけLayout Variantsボタンをdesign tab
  • あなたのxmlファイル内のクリックに行きます。
  • 風景のレイアウトが作成されますCreate Landscape Variation

を選択します。その後、要件に応じてレイアウトを自由に変更することができます。

+0

私はすでにそれをしました。私は2つのレイアウトを持っています。 1つはポートレート用、もう1つはランドスケープ用です。 –

+0

両方のレイアウトの見た目が同じであることを確認してください。 – IndianFlash

+0

すべてが同じです。私はすべてをコピーしただけで要素の位置を変更しました。 –

関連する問題