gpt4 book ai didi

java - AssetManager Drawable 的局部变量可能尚未初始化

转载 作者:行者123 更新时间:2023-12-01 23:49:00 28 4
gpt4 key购买 nike

我有一个类,我试图在 Android 应用程序中使用 AssetManager 读取图像。我必须在另一个类中调用此类。

import android.app.Activity;
import android.content.res.AssetManager;
import android.graphics.drawable.Drawable;
import android.util.Log;

import java.io.IOException;
import java.io.InputStream;

public class AssetActivity extends Activity {
private static final String TAG = "AssetActivity";

public Drawable getImage(String imgName) {
AssetManager assets = getAssets(); // get app's AssetManager
InputStream stream; // used to read in Image images
String nextImageName = imgName;
Drawable flag;
try {
// get an InputStream to the asset representing the next Image
stream = assets.open(nextImageName + ".jpg");

// load the asset as a Drawable and display on the objImageView
flag = Drawable.createFromStream(stream, nextImageName);
} // end try
catch (IOException e) {
Log.e(TAG, "Error loading " + nextImageName, e);
} // end catch
return flag;
}}

我收到错误消息,局部变量标志可能尚未初始化。请告诉我如何避免这个错误。预先非常感谢。

最佳答案

你需要给它某种默认值,因为 JVM 无法确定

flag = Drawable.createFromStream(stream, nextImageName);

行被执行。因此,当您尝试使用该值时,该值可能是未定义的。

例如,您可以这样声明:

Drawable flag = null;

关于java - AssetManager Drawable 的局部变量可能尚未初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16552025/

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