2016-06-06 2 views
-2

я получаю эту ошибкуНевозможно создать экземпляр активности?

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.bassammetwally.like/com.example.bassammetwally.like.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference 

когда я пытаюсь переключить деятельность в другом методе в я пытаюсь запустить в mainActivity.class

Кодекса (не собирается включать библиотеки);

public class MainActivity extends AppCompatActivity { 


    final Intent i = new Intent(this, profile.class); 
    ImageButton ButtonOne = (ImageButton) findViewById(R.id.profile); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     final Intent i = new Intent(this, profile.class); 
     ImageButton ButtonOne = (ImageButton) findViewById(R.id.profile); 
     ButtonOne.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       button(); 
      } 
     }); 

    } 

    public void button() 
    { 
     startActivity(i); 
    } 


} 

код до этого работал

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     final Intent i = new Intent(this, profile.class); 
     ImageButton ButtonOne = (ImageButton)findViewById(R.id.profile); 
     ButtonOne.setOnClickListener(new View.OnClickListener(){ 
      public void onClick(View v){ 
       startActivity(i); 
      } 
     }); 

}} 

Вопросы:

  1. Что такое значение ошибки?
  2. Почему эта ошибка отображается?
+0

не у вас есть Google ?? –

ответ

0

Вы начинаете переменную i дважды. При работе button() вы используете ту, что находится в открытом доступе (выше метода onCreate), а не от onCreate. Ваш код должен выглядеть следующим образом:

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    final Intent i = new Intent(this, profile.class); 
    ImageButton ButtonOne = (ImageButton) findViewById(R.id.profile); 
    ButtonOne.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      button(i); 
     } 
    }); 

} 

public void button(Intent i) 
{ 
    startActivity(i); 
} 
} 
0

Попробуйте этот код:

final Intent i ; 
ImageButton ButtonOne ; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    i =new Intent(MainActivity.this, profile.class); 
    ButtonOne = (ImageButton) findViewById(R.id.profile); 
    ButtonOne.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      button(); 
     } 
    }); 

} 

public void button() 
{ 
    startActivity(i); 
} 
0
public class MainActivity extends AppCompatActivity 
{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     ImageButton ButtonOne = (ImageButton) findViewById(R.id.profile); 

     ButtonOne.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
      Intent i = new Intent(this, profile.class); 
      startActivity(i); 
      } 
     }); 
    } 
} 

Также добавлена ​​Profile.java в файле манифеста

Смежные вопросы