我可以使用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)
答
其实你要的图像设置为空对象,这意味着Android的找不到对象在这种情况下,您的ImageButton设置从DB得到的图像的位置,这意味着您必须初始化您的按钮之前的活动和你会从firebase中设置图像。
可能重复[什么是NullPointerException,以及如何解决它?](https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-doi-i-修复它) –
我得到错误在这行代码bitmap.compress(Bitmap.CompressFormat.PNG,100,boas); –
是的,我们知道。错误消息说明了这一点 –