I'm trying to set the srcCompat of an ImageView but got this error instead.
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.pangelyn/com.example.pangelyn.SwipeRight}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference
I've checked multiple post in SO already but nothing seems to work.
Java file:
private void loadLocale() {
SharedPreferences prefs = getSharedPreferences("Settings", Activity.MODE_PRIVATE);
String language = prefs.getString("Lang","");
setLocale(language);
ImageView imageView = findViewById(R.id.imageView_flag);
if (language.equals("en")) {
imageView.setImageResource(R.drawable.usa);
}
else if (language.equals("in")) {
imageView.setImageResource(R.drawable.indonesia);
}
else if (language.equals("fil")) {
imageView.setImageResource(R.drawable.philippines);
}
}
XML file:
<ImageView
android:id="@+id/imageView_flag"
android:layout_width="30sp"
android:layout_height="30sp"
android:layout_alignParentRight="true"
android:layout_marginRight="5sp"
android:background="@drawable/stroke"
android:padding="3dp"
android:scaleType="centerInside"
app:srcCompat="@drawable/philippines" />
EDIT:
2020-02-13 23:32:37.312 9854-9854/com.example.pangelyn E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.pangelyn, PID: 9854
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.pangelyn/com.example.pangelyn.SwipeRight}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference
at com.example.pangelyn.SwipeRight.loadLocale(SwipeRight.java:164)
at com.example.pangelyn.SwipeRight.onCreate(SwipeRight.java:42)
at android.app.Activity.performCreate(Activity.java:7009)
at android.app.Activity.performCreate(Activity.java:7000)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)