android简单开发,使用bmob作为服务器后端,上传图片到bmob失败

jam96 2016-10-06 10:26:31
以下为我上传的代码:
public void storePicture(){
File file=new File("sdcard/"+PATH);
if (file!=null){
final BmobFile bmobFile=new BmobFile(file);
bmobFile.uploadblock(new UploadFileListener() {
@Override
public void done(BmobException e) {
if (e==null){
Picture picture=new Picture();
picture.setContent(textView.getText().toString());
picture.setFile(bmobFile);
picture.save(new SaveListener<String>() {
@Override
public void done(String s, BmobException e) {
if (e == null) {
Toast.makeText(MainActivity.this, "存取图片成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "存取失败3", Toast.LENGTH_SHORT).show();
}
}
});
}else{
Toast.makeText(MainActivity.this,"存取失败2",Toast.LENGTH_SHORT).show();
}
}
});
}

}
然后每次点击上传按钮后,都会提示错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context cn.bmob.v3.BmobWrapper.getApplicationContext()' on a null object reference
以下是完整的代码,主要就是实现一个简单的点击添加按钮,能够获取手机图片,然后点击上传按钮,能够上传图片到bmob上:

public class MainActivity extends Activity implements View.OnClickListener{
private TextView textView;
private ImageView imageView;
private Button btnAdd,btnSave;
final private int GET_PICTURE=1;
final private int SAVE_PICTURE=2;
private String PATH;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
btnSave.setOnClickListener(this);
btnAdd.setOnClickListener(this);
}
public void initView(){
textView=(TextView)findViewById(R.id.text);
imageView=(ImageView)findViewById(R.id.image);
btnAdd=(Button)findViewById(R.id.addImage);
btnSave=(Button)findViewById(R.id.saveImage);
}

@Override
public void onClick(View v) {
switch (v.getId()){
//获取本地图片,并显示
case R.id.addImage:
getPicture();
break;
//上传图片
case R.id.saveImage:
storePicture();
break;
}
}
public void getPicture(){
Intent intent=new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent,GET_PICTURE);
}



public void storePicture(){
File file=new File("sdcard/"+PATH);
if (file!=null){
final BmobFile bmobFile=new BmobFile(file);
bmobFile.uploadblock(new UploadFileListener() {
@Override
public void done(BmobException e) {
if (e==null){
Picture picture=new Picture();
picture.setContent(textView.getText().toString());
picture.setFile(bmobFile);
picture.save(new SaveListener<String>() {
@Override
public void done(String s, BmobException e) {
if (e == null) {
Toast.makeText(MainActivity.this, "存取图片成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "存取失败3", Toast.LENGTH_SHORT).show();
}
}
});
}else{
Toast.makeText(MainActivity.this,"存取失败2",Toast.LENGTH_SHORT).show();
}
}
});
}

}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode){
case GET_PICTURE:
if (data!=null){
Uri selectedImageUri=data.getData();
String[] proj={MediaStore.Images.Media.DATA};
Cursor cursor=managedQuery(selectedImageUri,proj,null,null,null);
int column_index=cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
PATH=cursor.getString(column_index);
textView.setText(PATH);
try{
Bitmap bitmap= BitmapFactory.decodeStream(this.getContentResolver().openInputStream(Uri.parse(selectedImageUri.toString())));
imageView.setImageBitmap(bitmap);
}catch (FileNotFoundException e){
e.printStackTrace();
}
}else {
Toast.makeText(this,"获取图片失败",Toast.LENGTH_SHORT).show();
}
break;
}
}

}
求大神们帮忙解决下这个问题,debug了好久,也没找出来!
...全文
1165 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jingyarufeng 2018-04-15
  • 打赏
  • 举报
回复
说错了,是没写Application ID把!反正我是没写...
jingyarufeng 2018-04-15
  • 打赏
  • 举报
回复
没写KEY.........
江南小虫虫 2017-11-09
  • 打赏
  • 举报
回复
我也遇到过这个问题,查看一下`Bmob.initialize(this, "appkey");`的context
imageprocessin 2016-11-08
  • 打赏
  • 举报
回复
请问楼主是怎么解决的呢?

80,354

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧