Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Studio:java.lang.NullPointerException:尝试对空对象引用调用虚拟方法[ImageButton]_Java_Android_Android Intent_Nullpointerexception - Fatal编程技术网

Android Studio:java.lang.NullPointerException:尝试对空对象引用调用虚拟方法[ImageButton]

Android Studio:java.lang.NullPointerException:尝试对空对象引用调用虚拟方法[ImageButton],java,android,android-intent,nullpointerexception,Java,Android,Android Intent,Nullpointerexception,我一直在寻找一个对我有效的答案,但没有找到任何有用的答案 我的问题是我正在将一个ImageButton链接到另一个活动,但是当单击时会抛出一个NullPointerException 以下是MainActivity课程: package com.example.gpp2; 导入android.content.Intent; 导入android.support.v7.app.AppActivity; 导入android.os.Bundle; 导入android.view.view; 导入andr

我一直在寻找一个对我有效的答案,但没有找到任何有用的答案

我的问题是我正在将一个
ImageButton
链接到另一个
活动
,但是当单击时会抛出一个
NullPointerException

以下是
MainActivity
课程:

package com.example.gpp2;
导入android.content.Intent;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.ImageButton;
公共类MainActivity扩展了AppCompatActivity{
图像按钮添加按钮;
图像按钮登录按钮;
按钮的图像按钮;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addButton=(ImageButton)findViewById(R.id.ImageButton);
addButton.setOnClickListener(新视图.OnClickListener(){
//当按下/单击按钮时,它将运行下面的代码
@凌驾
公共void onClick(视图){
//意图是你用来开始另一项活动的东西
意向意向=新意向(MainActivity.this、AddPage.class);
intent.putExtra(“关键字”,R.drawable.add);
星触觉(意向);
}
});
loginButton=(ImageButton)findViewById(R.id.imageButton5);
loginButton.setOnClickListener(新视图.OnClickListener(){
//当按下/单击按钮时,它将运行下面的代码
@凌驾
公共void onClick(视图){
//意图是你用来开始另一项活动的东西
意向意向=新意向(MainActivity.this,loginH.class);
intent.putExtra(“关键字”,R.drawable.login);
星触觉(意向);
}
});
offerButton=(ImageButton)findViewById(R.id.imageButton4);
offerButton.setOnClickListener(新视图.OnClickListener(){
//当按下/单击按钮时,它将运行下面的代码
@凌驾
公共void onClick(视图){
//意图是你用来开始另一项活动的东西
意向意向=新意向(MainActivity.this、OfferPage.class);
意向。额外支付(“关键字”,R.drawable.moneybag);
星触觉(意向);
}
});
}

}
您可以传递字节数组并获取字节数组,然后制作位图:

 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);     
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); 
byte[] b = baos.toByteArray();

Intent intent = new Intent(this, ActivityB.class);
intent.putExtra("picture", b);
startActivity(intent);
在活动B中,您通过字节数组(解码图片)接收意图,并将其作为源应用于ImageView:

Bundle extras = getIntent().getExtras();
byte[] b = extras.getByteArray("picture");
`
Bitmap bmp = BitmapFactory.decodeByteArray(b, 0, b.length);
`ImageView image = (ImageView) findViewById(R.id.imageView1);
image.setImageBitmap(bmp);

请张贴完整的堆栈跟踪;i、 例如,
java.lang.NullPointerException
之后的所有红线。您的logcat详细信息在哪里?在您的Logcati上添加所有红线,但logcat较大。在
addpage
布局中似乎没有ID为
imageButton11
。我还要提到,
AddPage
目前扩展了
MainActivity
。这就是你想做的吗?它没有使用
MainActivity
类中的任何内容,因此,您最终会设置内容
View
两次,第二次完全取代第一次,因此这是毫无意义的。也许您的意思是扩展普通的
活动
。这如何解决
空点异常
?他们甚至还没有用通过的额外数据做任何事情。此外,传递
R.drawable
比在
Intent
上传递一个巨大的
byte
数组要好得多。