当前位置: 首页 > 面试题库 >

为什么不能在没有运行时错误的情况下使用Resources.getSystem()?

昝枫
2023-03-14
问题内容
public class BobDatabase extends SQLiteOpenHelper{
private static final String DATABASE_NAME = "bob.db";
private static final int DATABASE_VERSION = 1;
public static final String DEFAULT_PROFILE = "default_profile";

public BobDatabase(Context context) 
{
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase database) 
{
    createProfileTable(database);
    createTimeTable(database);
    createEventTable(database);
    createLocationTable(database);
}

/**
 * Creates a table for Profile objects, executes the string create_profile_table_sql
 * contained within strings.xml
 * @param database
 */
public void createProfileTable(SQLiteDatabase database)
{
    database.execSQL(Resources.getSystem().getString(R.string.create_profile_table_sql));
}}

我得到这个错误

01-14 12:20:57.591:E / AndroidRuntime(1825):原因:android.content.res.Resources
$ NotFoundException:字符串资源ID#0x7f040003

如果我使用类变量保存上下文并执行 context.getString(R.string.create_profile_table_sql)*
,则导致错误的代码是createProfileTable中的单行,特别是
Resources.getSystem()。getString(R.string.create_profile_table_sql)。
我没有收到任何错误,但是我不想这样做,因为我想避免内存泄漏,并根据我所知道的应该这样做。知道发生了什么吗?
*


问题答案:

根据Android文档,Resources.getSystem()仅提供系统级资源,不提供应用程序级资源(如strings.xml文件中的资源)。

http://developer.android.com/reference/android/content/res/Resources.html#getSystem()

如果您确实想以这种方式检索字符串,请尝试使用应用程序的上下文,或者在问题的注释中采纳我的建议。



 类似资料:
  • 问题内容: 我正在尝试编写一个执行脚本;但是,如果没有要提交的内容,则git会退出,状态为。部署脚本将其视为不成功,然后退出。我确实想检测 实际 要提交的故障,因此我不能仅仅给Fabric全面忽略故障。如何允许忽略空提交故障,以便部署可以继续进行,但仍然可以捕获实际提交失败时导致的错误? 问题答案: 通过检查git diff?的退出代码来预先捕获此条件。 例如(在shell中): 编辑:根据霍尔格

  • 文档说这个库运行在GPU上。如果我功能强大的笔记本电脑没有GPU,我还能运行Deeplearning4J吗?

  • 问题内容: 我想像运行shell命令: 不用任何插件就能做到吗?由于Jenkins不是,而是服务帐户,我该如何添加? 问题答案: 首先执行 然后执行 然后注销 对于注销很重要,因为您需要重新评估组成员身份 登录并重试 有用!

  • 这是我的代码: 代码编译时没有任何编译器错误。为什么它不会有编译错误呢。类C与引用类型类D和实际的类类型B没有任何关系。它是如何通过类型转换的编译器检查的?

  • 第二种情况有什么问题? 未捕获的TypeError:x.toLocaleUpperCase在HtmlButtoneElement的f(:2:14) 在:5:25 处不是函数。执行按钮。onclick

  • 我刚刚通过nodejs.org上的软件包安装了node和npm,每当我试图搜索或安装npm时,它都会抛出以下错误,除非我执行该命令。我觉得这是一个权限问题?我已经是管理员了。