Вы не можете получить доступ к ресурсам до инициализации приложения. static
поля генерируются в .dex
файле со статическим определением, это означает, что они должны быть статическими, как "foo"
. Но вы не можете использовать ресурсы при статической инициализации с ресурсами приложения.
Измените свой класс деятельности этим.
public class GameActivity extends Activity {
private static Resources res;
public static String foo;
@Override
protected void onCreate(@android.support.annotation.Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
res = App.getAppContext().getResources();
foo = res.getString(R.string.foo);
}
}
Кстати, зачем вам нужно создавать объект Resources, когда у вас есть прямой доступ к методу getString
в Activity
class
Вы можете просто сделать это.
public class GameActivity extends Activity {
public static String foo;
@Override
protected void onCreate(@android.support.annotation.Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
foo = getString(R.string.foo);
}
}