google / google/gson

ArrayList initialized by Gson with a TypeToken returns NullPointerException on android 11 & 12

Open
#2,097 4 comments 1 reaction 0 assignees View on GitHub
bug needs-info
Dominant language
Java
Stars
24.2k
Forks
4.5k
Avg merge
6d 4h
Merged PRs (30d)
12

Description

# Gson version
2.9.0 and 2.8.7

# Java / Android version
Android 11 & 12
Java 8

# Used tools
- Gradle version: 7.1.2
- compileSdk 32
- buildToolsVersion '32.0.0'
- com.google.gms:google-services:4.3.10

# Description
NullPointerException when trying to add a HashMap to an ArrayList that Gson has initialized with or without data from a json file.

## Expected behavior
A HashMap to be added to the ArrayList

## Actual behavior
A NullPointerException occured indicating the ArrayList was either null or not of the expected type on Android 11 and 12.
Android 10 and below A HashMap is succesfully added to the ArrayList that Gson initialized.

# Reproduction steps
Make sure you are using android 11 or 12
```
ArrayList> logData;
logData = new Gson().fromJson(filePath, new TypeToken>>() {}.getType());
```
Make a new HashMap add it to the ArrayList that Gson has initialized

```
HashMap map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", "value2");
logData.add(map);
```

# Exception stack trace
```
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.util.ArrayList.add(java.lang.Object)' on a null object reference
at com.mvp.shakeit.ForegroundService.logJson(ForegroundService.java:204)
at com.mvp.shakeit.ForegroundService.levelTwoWipe(ForegroundService.java:221)
at com.mvp.shakeit.ForegroundService.lambda$runTask$0$com-mvp-shakeit-ForegroundService(ForegroundService.java:142)
at com.mvp.shakeit.ForegroundService$$ExternalSyntheticLambda0.onTranslation(Unknown Source:5)
at com.mvp.shakeit.AccelUtil$1.onSensorChanged(AccelUtil.java:50)
at android.hardware.SystemSensorManager$SensorEventQueue.dispatchSensorEvent(SystemSensorManager.java:886)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:335)
at android.os.Looper.loopOnce(Looper.java:161)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7870)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1019)
```

I will try and put a MRPE together tomorrow

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.