android - 应用程序崩溃 java.lang.RuntimeException:传递结果 ResultInfo 失败
问题描述
public class MainActivity extends AppCompatActivity {
private Button openCamera;
private ImageView image;
private static final int CAMERA_REQUEST_CODE = 100;
private StorageReference mStorage;
private ProgressDialog mProgress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mStorage = FirebaseStorage.getInstance().getReference();
openCamera = (Button) findViewById(R.id.btnOpenCamera);
image = (ImageView) findViewById(R.id.ivImage);
mProgress = new ProgressDialog(this);
openCamera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, CAMERA_REQUEST_CODE);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == CAMERA_REQUEST_CODE && resultCode == RESULT_OK){
mProgress.setMessage(("Uploading Image..."));
mProgress.show();
Uri uri = data.getData();
StorageReference filepath = mStorage.child("Photos").child("new photo");
filepath.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
mProgress.dismiss();
Toast.makeText(MainActivity.this, "Uploading Finished...", Toast.LENGTH_SHORT).show();
}
});
}
}
}
错误信息:
10-05 16:15:33.492 30510-30510/com.example.android.camera E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.android.camera, PID: 30510
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { act=inline-data (has extras) }} to activity {com.example.android.camera/com.example.android.camera.MainActivity}: java.lang.IllegalArgumentException: uri cannot be null
at android.app.ActivityThread.deliverResults(ActivityThread.java:3720)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3763)
at android.app.ActivityThread.-wrap16(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1403)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5443)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
Caused by: java.lang.IllegalArgumentException: uri cannot be null
at com.google.android.gms.common.internal.zzbo.zzb(Unknown Source)
at com.google.firebase.storage.StorageReference.putFile(Unknown Source)
at com.example.android.camera.MainActivity.onActivityResult(MainActivity.java:73)
at android.app.Activity.dispatchActivityResult(Activity.java:6470)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3716)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3763)
at android.app.ActivityThread.-wrap16(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1403)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5443)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
10-05 16:15:39.170 30510-30629/com.example.android.camera W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
解决方案
推荐阅读
- python - Python 请求:如何同时设置可选参数和非可选参数?
- java - 如何在excel中逐行打印传递的字符串
- python - 按组从 Pandas Dataframe 中删除 NaN
- visual-studio-extensions - 是否可以从 Azure DevOps 包管理发布和使用 VS 扩展?
- ruby - 如何比较关于元素顺序的两个多维哈希
- elasticsearch - 获取过去的警报执行数据
- c++ - Denstructor 删除已被替换的成员?
- php - Visual Studio Code 和 Laravel 命令
- r - flextable:set_header_df 导致 R 会话崩溃
- git - 在 Git repo(不是 github)上使用 SVN 客户端