【问题标题】:'java.lang.String java.lang.Object.toString()' on a null object reference空对象引用上的“java.lang.String java.lang.Object.toString()”
【发布时间】:2025-12-30 12:50:12
【问题描述】:
ProductRef.child(productRandomKey).updateChildren(productMap)
                .addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {

                        if(task.isSuccessful()){

                            downloadImageUrl = task.getResult().toString();  //it is the problem

                            Intent intent = new Intent(AdminAddNewProductActivity.this, AdminCategoryActivity.class);
                            startActivity(intent);

                            loadingBar.dismiss();
                            Toast.makeText(AdminAddNewProductActivity.this, "Product is added successfully...", Toast.LENGTH_SHORT).show();

                        }

                        else{

                            loadingBar.dismiss();
                            String message = task.getException().toString();
                            Toast.makeText(AdminAddNewProductActivity.this, "Error: "+message, Toast.LENGTH_SHORT).show();

                        }

                    }
                });

最终存储参考文件路径 = ProductImageRef.child(ImageUri.getLastPathSegment() + productRandomKey + ".jpg");

    final UploadTask uploadTask = filePath.putFile(ImageUri);

downloadImageUrl = filePath.getDownloadUrl().toString(); 返回文件路径.getDownloadUrl();

我以前使用过这些行。当我尝试上传应用程序崩溃的图片时,就会发生这种情况。

【问题讨论】:

  • 您的task.getResult() 可能为空。添加检查

标签: java android image


【解决方案1】:

您正在对 null 对象调用 toString();。所以你可以添加一些条件来检查它。改变这个:

downloadImageUrl = task.getResult().toString();

Result result = task.getResult();

if (result == null) {
    // TODO - handle null object here (e.g. show some placeholder)
} else {
    downloadImageUrl = result.toString();
}

【讨论】:

    最近更新 更多