Почему я не могу использовать Resources.getSystem() без ошибки Runtime?

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): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x7f040003

Код, который вызывает ошибку, это единственная строка внутри createProfileTable, а именно, Resources.getSystem().getString(R.string.create_profile_table_sql) если я использую переменную класса для хранения Context и делаю context. getString(R.string.create_profile_table_sql) я не получаю никаких ошибок, но я не хочу этого делать, потому что хочу избежать утечки памяти, и согласно тому, что я знаю, это должно работать. Есть идеи, что происходит?

9
задан Garzahd 14 January 2012 в 17:36
поделиться