Java 无法实例化活动?

Java 无法实例化活动?,java,android,android-studio,Java,Android,Android Studio,我犯了这个错误 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

我犯了这个错误

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 {

    @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);
            }
        });

}}
问题:

  • 错误的含义是什么
  • 为什么会显示此错误

  • 您启动变量
    i
    两次。在使用函数
    按钮()
    时,您使用的是公共范围内的函数(在
    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);
    }
    }
    
    请尝试以下代码:

    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);
    }
    

    还在清单文件中添加了Profile.java

    你没有谷歌吗??
    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);
    }
    
    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);
                }
            });
        }
    }