gpt4 book ai didi

java - 尝试在android中写入SD卡时出现空指针异常

转载 作者:太空宇宙 更新时间:2023-11-04 13:28:33 29 4
gpt4 key购买 nike

这是我在应用程序启动 Activity 的 onCreate() 方法中的代码

 protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_startup);


Bitmap bm = BitmapFactory.decodeResource(getApplicationContext().getResources(), R.drawable.img);
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 40, bytes);

//you can create a new file name "test.jpg" in sdcard folder.
File f = new File(Environment.getExternalStorageDirectory()
+ File.separator + "test.jpg");
try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
//write the bytes in file
FileOutputStream fo = null;
try {
fo = new FileOutputStream(f);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
fo.write(bytes.toByteArray());
} catch (IOException e) {
e.printStackTrace();
}
try {
fo.close();
} catch (IOException e) {
e.printStackTrace();
}

它的目的是将图像加载到位图中,然后在 SD 卡上创建一个名为“test.jpg”的文件,并将该图像放入其中,但事实并非如此。

相反,我得到了一个空指针异常

 fo.write(bytes.toByteArray());

错误信息是:

 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.daniel.firstapp/com.example.daniel.firstapp.startup}: java.lang.NullPointerException: Attempt to invoke virtual method 'void java.io.FileOutputStream.write(byte[])' on a null object reference

最佳答案

第一:为什么有这么多try/catch

第二:您的 fo 变量为 null

可能是因为无法创建文件。

确保您的 list 中包含此内容:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

关于java - 尝试在android中写入SD卡时出现空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32417905/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com