我可以使用imgaeButton将图像上传到firebase存储

问题描述:

我试图在android中使用imageView时上传图像,并且它成功上传了图像。但是当我在imageView的地方使用imageButton时,我得到了错误。我可以使用imgaeButton将图像上传到firebase存储

imageButton.setDrawingCacheEnabled(true); 
imageButton.buildDrawingCache(); 
Bitmap bitmap = imageButton.getDrawingCache(); 
ByteArrayOutputStream boas = new ByteArrayOutputStream(); 
bitmap.compress(Bitmap.CompressFormat.PNG, 100, boas); 
imageButton.setDrawingCacheEnabled(false); 
byte[] data = boas.toByteArray(); 

String path = "firememes/" + UUID.randomUUID() + ".png"; 
StorageReference firememRef = storage.getReference(path); 

我收到此错误

07-19 17:17:17.154 21469-21469/com.umer.listview D/AndroidRuntime: Shutting down VM 
07-19 17:17:17.154 21469-21469/com.umer.listview E/AndroidRuntime: FATAL EXCEPTION: main 
                    Process: com.umer.listview, PID: 21469 
                    java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)' on a null object reference 
                     at com.umer.listview.MainActivity$2.onClick(MainActivity.java:125) 
                     at android.view.View.performClick(View.java:5204) 
                     at android.view.View$PerformClick.run(View.java:21153) 
                     at android.os.Handler.handleCallback(Handler.java:739) 
                     at android.os.Handler.dispatchMessage(Handler.java:95) 
                     at android.os.Looper.loop(Looper.java:148) 
                     at android.app.ActivityThread.main(ActivityThread.java:5417) 
                     at java.lang.reflect.Method.invoke(Native Method) 
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
+2

可能重复[什么是NullPointerException,以及如何解决它?](https://*.com/questions/218384/what-is-a-nullpointerexception-and-how-doi-i-修复它) –

+0

我得到错误在这行代码bitmap.compress(Bitmap.CompressFormat.PNG,100,boas); –

+0

是的,我们知道。错误消息说明了这一点 –

其实你要的图像设置为空对象,这意味着Android的找不到对象在这种情况下,您的ImageButton设置从DB得到的图像的位置,这意味着您必须初始化您的按钮之前的活动你会从firebase中设置图像。