gpt4 book ai didi

Android assetManager getAssets() 抛出空指针异常

转载 作者:行者123 更新时间:2023-11-29 16:07:48 25 4
gpt4 key购买 nike

我有 2 个类,来自 BinderData 类,它扩展了 BaseAdapter(我不能将此类扩展到 Activity,因为我必须扩展到 BaseAdapter)我正在通过以下代码调用类 AssetActivity:

AssetActivity a = new AssetActivity();
Drawable image=a.getImage(imageUri);

这里的 imageuri 是一个字符串,它被正确填充。在我正在使用的代码之后的 AssetActivity 类中。

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

public Drawable getImage(String imgName) {

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

// 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;
}
}

当我运行代码时,我在下一行收到 NullPointerException。

AssetManager assets = getAssets();

Assets 文件夹中有 Assets ,我可以在其他显式调用 getAssets() 方法并且该类扩展 Activity 的类中获取它们。请在这件事上给予我帮助。我怀疑我在调用 BinderData 类中的 getImage 方法时做错了什么。请帮我。谢谢。

最佳答案

AssetManager assets = getAssets(); 会给你 NullPointerException 因为 getAssets() 会返回 nullgetAssets()需要在ActivityContext中调用;

您不能为 android 将通过生命周期方法处理的类创建对象。所以不要为 Activity 创建对象。

将该方法放在您的 Activity 类中,使用 context.getAssets() 获取 Assets

关于Android assetManager getAssets() 抛出空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16571645/

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