Java 尝试调用虚拟方法时出错';void android.widget.Button.setOnClickListener(android.view.view$OnClickListener)和#x27;关于空对象引用

Java 尝试调用虚拟方法时出错';void android.widget.Button.setOnClickListener(android.view.view$OnClickListener)和#x27;关于空对象引用,java,android,android-studio,Java,Android,Android Studio,原因:java.lang.NullPointerException:尝试调用虚拟机 方法无效 android.widget.Button.setOnClickListener(android.view.view$OnClickListener)' 关于空对象引用 package com.example.andriod.societymaintenance; 公共类NotceActivity扩展了AppCompatActivity{ 私有静态最终整数选取图像请求=1; 私人按钮mButtonCho

原因:java.lang.NullPointerException:尝试调用虚拟机 方法无效 android.widget.Button.setOnClickListener(android.view.view$OnClickListener)' 关于空对象引用

package com.example.andriod.societymaintenance;
公共类NotceActivity扩展了AppCompatActivity{
私有静态最终整数选取图像请求=1;
私人按钮mButtonChooseImage;
专用按钮MBUTONUPLOAD;
私有文本视图MTEXTVIEWSHOW上传;
私有EditText mEditTextFileName;
私有图像视图mImageView;
私人ProgressBar mProgressBar;
私有Uri-mimageri;
私有存储参考mStorageRef;
私有数据库引用mDatabaseRef;
专用存储任务mUploadTask;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButtonChooseImage=findviewbyd(R.id.button\u choose\u image);
mButtonUpload=findviewbyd(R.id.button\u上传);
mTextViewShowUploads=findviewbyd(R.id.text\u view\u show\u uploads);
mEditTextFileName=findviewbyd(R.id.edit\u text\u file\u name);
mImageView=findviewbyd(R.id.imageView);
mProgressBar=findviewbyd(R.id.progress\u bar);
mStorageRef=FirebaseStorage.getInstance().getReference(“上传”);
mDatabaseRef=FirebaseDatabase.getInstance().getReference(“上载”);
mButtonChooseImage.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
openFileChooser();
}
});
mButtonUpload.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
if(mUploadTask!=null&&mUploadTask.isInProgress()){
Toast.makeText(NotceActivity.this,“正在上载”,Toast.LENGTH_SHORT.show();
}否则{
上传文件();
}
}
});
mTextViewShowUploads.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
}
});
}
私有void openFileChooser(){
意图=新意图();
intent.setType(“image/*”);
intent.setAction(intent.ACTION\u GET\u CONTENT);
startActivityForResult(意图、拾取图像请求);
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
如果(requestCode==PICK\u IMAGE\u REQUEST&&resultCode==RESULT\u OK
&&数据!=null&&data.getData()!=null){
mimageri=data.getData();
Picasso.get().load(mimageri).into(mImageView);
}
}
私有字符串getFileExtension(Uri){
ContentResolver cR=getContentResolver();
MimeTypeMap mime=MimeTypeMap.getSingleton();
返回mime.getExtensionFromMimeType(cR.getType(uri));
}
私有void上传文件(){
if(mimageri!=null){
StorageReference fileReference=mStorageRef.child(System.currentTimeMillis()
+“+getFileExtension(mimageri));
mUploadTask=fileReference.putFile(mimageri)
.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
Handler=newhandler();
handler.postDelayed(新的Runnable(){
@凌驾
公开募捐{
mProgressBar.setProgress(0);
}
}, 500);
Toast.makeText(NotceActivity.this,“上载成功”,Toast.LENGTH_LONG.show();
Upload Upload=新上载(mEditTextFileName.getText().toString().trim(),
taskSnapshot.getUploadSessionUri().toString());
字符串uploadId=mDatabaseRef.push().getKey();
mDatabaseRef.child(uploadId).setValue(upload);
}
})
.addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
Toast.makeText(NotceActivity.this,e.getMessage(),Toast.LENGTH_SHORT.show();
}
})
.addOnProgressListener(新的OnProgressListener(){
@凌驾
public void onProgress(UploadTask.TaskSnapshot TaskSnapshot){
双进度=(100.0*taskSnapshot.GetByTestTransferred()/taskSnapshot.getTotalByteCount());
mProgressBar.setProgress((int)progress);
}
});
}否则{
Toast.makeText(这是“未选择文件”,Toast.LENGTH_SHORT).show();
}
}
}

package com.example.andriod.societymaintenance;

public class NotceActivity extends AppCompatActivity {

    private static final int PICK_IMAGE_REQUEST = 1;

    private Button mButtonChooseImage;
    private Button mButtonUpload;
    private TextView mTextViewShowUploads;
    private EditText mEditTextFileName;
    private ImageView mImageView;
    private ProgressBar mProgressBar;

    private Uri mImageUri;

    private StorageReference mStorageRef;
    private DatabaseReference mDatabaseRef;

    private StorageTask mUploadTask;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mButtonChooseImage = findViewById(R.id.button_choose_image);
        mButtonUpload = findViewById(R.id.button_upload);
        mTextViewShowUploads = findViewById(R.id.text_view_show_uploads);
        mEditTextFileName = findViewById(R.id.edit_text_file_name);
        mImageView = findViewById(R.id.imageView);
        mProgressBar = findViewById(R.id.progress_bar);

        mStorageRef = FirebaseStorage.getInstance().getReference("uploads");
        mDatabaseRef = FirebaseDatabase.getInstance().getReference("uploads");

        mButtonChooseImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openFileChooser();
            }
        });

        mButtonUpload.setOnClickListener(new View.OnClickListener() {  
            @Override
            public void onClick(View v) {
                if (mUploadTask != null && mUploadTask.isInProgress()) {
                    Toast.makeText(NotceActivity.this, "Upload in progress", Toast.LENGTH_SHORT).show();
                } else {
                    uploadFile();
                }
            }
        });

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

            }
        });
    }

    private void openFileChooser() {
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(intent, PICK_IMAGE_REQUEST);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK
                && data != null && data.getData() != null) {
            mImageUri = data.getData();

            Picasso.get().load(mImageUri).into(mImageView);
        }
    }

    private String getFileExtension(Uri uri) {
        ContentResolver cR = getContentResolver();
        MimeTypeMap mime = MimeTypeMap.getSingleton();
        return mime.getExtensionFromMimeType(cR.getType(uri));
    }

    private void uploadFile() {
        if (mImageUri != null) {
            StorageReference fileReference = mStorageRef.child(System.currentTimeMillis()
                    + "." + getFileExtension(mImageUri));

            mUploadTask = fileReference.putFile(mImageUri)
                    .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                        @Override
                        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                            Handler handler = new Handler();
                            handler.postDelayed(new Runnable() {
                                @Override
                                public void run() {
                                    mProgressBar.setProgress(0);
                                }
                            }, 500);

                            Toast.makeText(NotceActivity.this, "Upload successful", Toast.LENGTH_LONG).show();
                            Upload upload = new Upload(mEditTextFileName.getText().toString().trim(),
                                    taskSnapshot.getUploadSessionUri().toString());
                            String uploadId = mDatabaseRef.push().getKey();
                            mDatabaseRef.child(uploadId).setValue(upload);
                        }
                    })
                    .addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                            Toast.makeText(NotceActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
                        }
                    })
                    .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
                        @Override
                        public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                            double progress = (100.0 * taskSnapshot.getBytesTransferred() / taskSnapshot.getTotalByteCount());
                            mProgressBar.setProgress((int) progress);
                        }
                    });
        } else {
            Toast.makeText(this, "No file selected", Toast.LENGTH_SHORT).show();
        }
    }
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".NotceActivity">

    <Button
        android:id="@+id/button_choose_image"
        android:layout_width="125dp"
        android:layout_height="52dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:text="Choose"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.055"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.057" />

    <EditText
        android:id="@+id/edit_text_file_name"
        android:layout_width="206dp"
        android:layout_height="45dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:hint="Enter File Name"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.954"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.068" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="292dp"
        android:layout_height="348dp"
        android:layout_above="@+id/progress_bar"
        android:layout_below="@+id/edit_text_file_name"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.441"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.452" />

    <ProgressBar
        android:id="@+id/progress_bar"
        style="@style/Widget.AppCompat.ProgressBar.Horizontal"
        android:layout_width="380dp"
        android:layout_height="29dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.516"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.861" />

    <Button
        android:id="@+id/button_upload"
        android:layout_width="100dp"
        android:layout_height="71dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:text="Upload"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.051"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.975" />

    <TextView
        android:id="@+id/text_view_show_uploads"
        android:layout_width="218dp"
        android:layout_height="63dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:gravity="center"
        android:text="Show Uploads"
        android:textSize="16dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.73"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.964" />


</androidx.constraintlayout.widget.ConstraintLayout>