На данный вопрос уже ответили:
В методе onCreate
при определении ArrayList
выскакивает java.lang.NullPointerException
.
Не могу понять почему, так как вся необходимая информация задана.
MainActivity.java
private static ArrayList<String> listNamePlanets, listDscPlanets;
private static TypedArray listImgPlanets;
private static ArrayList<Profile> plants = new ArrayList<>();
Resources res;
private SectionsPagerAdapter mSectionsPagerAdapter;
private ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData(); // В этом методе выдается ошибка, это 40 строка
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.container);
mViewPager.setAdapter(mSectionsPagerAdapter);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(mViewPager);
}
public void initData() {
//При определении переменной listNamePlanets выпадает NullPointerException, это 55 строка
listNamePlanets = new ArrayList<>(Arrays.asList(res.getStringArray(R.array.txt_array_planets)));
listDscPlanets = new ArrayList<>(Arrays.asList(res.getStringArray(R.array.txt_array_dsc_planets)));
listImgPlanets = res.obtainTypedArray(R.array.array_img_planet);
}
string.xml
<string name="txt_mercury">Меркурий</string>
<string name="txt_venus">Венера</string>
<string name="txt_earth">Земля</string>
<string name="txt_mars">Марс</string>
<string name="txt_jupiter">Юпитер</string>
<string name="txt_saturn">Сатурн</string>
<string name="txt_uranus">Уран</string>
<string name="txt_neptune">Нептун</string>
<string-array name="txt_array_planets">
<item>@string/txt_mercury</item>
<item>@string/txt_venus</item>
<item>@string/txt_earth</item>
<item>@string/txt_mars</item>
<item>@string/txt_jupiter</item>
<item>@string/txt_saturn</item>
<item>@string/txt_uranus</item>
<item>@string/txt_neptune</item>
</string-array>
R.java
public static final class string {
public static final int txt_earth=0x7f0e0037;
public static final int txt_jupiter=0x7f0e0038;
public static final int txt_mars=0x7f0e0039;
public static final int txt_mercury=0x7f0e003a;
public static final int txt_neptune=0x7f0e003b;
public static final int txt_saturn=0x7f0e003c;
public static final int txt_uranus=0x7f0e003d;
public static final int txt_venus=0x7f0e003e;
}
public static final class array {
public static final int array_img_planet=0x7f030000;
public static final int txt_array_dsc_planets=0x7f030001;
public static final int txt_array_planets=0x7f030002;
}
Logcat
java.lang.RuntimeException: Unable to start activity ComponentInfo{ru.sen.planets/ru.sen.planets.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] android.content.res.Resources.getStringArray(int)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java)
at android.app.ActivityThread.access$800(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java)
at android.os.Handler.dispatchMessage(Handler.java)
at android.os.Looper.loop(Looper.java)
at android.app.ActivityThread.main(ActivityThread.java)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] android.content.res.Resources.getStringArray(int)' on a null object reference
at ru.sen.planets.MainActivity.initData(MainActivity.java:55)
at ru.sen.planets.MainActivity.onCreate(MainActivity.java:40)
at android.app.Activity.performCreate(Activity.java)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java)
at android.app.ActivityThread.access$800(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java)
at android.os.Handler.dispatchMessage(Handler.java)
at android.os.Looper.loop(Looper.java)
at android.app.ActivityThread.main(ActivityThread.java)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
Вы не инициализировали переменную res
.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// инициализируйте res
res = getResources();
initData();
...
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Вопрос состоит в том что я хочу правильно оформить запрос, да бы не допустить в будущем SQL-инъекций но что-то не получается, помогите разобраться,...
Как в spring data jpa бороться с дубликатами? Например мне нужно сохранить профиль с листом тегов и со связью многие ко многимПри сохранении отдельно...
Как преобразовать xml конфигурацию в webxml в java class?
В проекте есть макеры и кластерыНужно чтобы работало нажатие у обоих