Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
Thanks for the report. Would it be possible for you to share a zip dump of the inputs to R8, including the app's class files, keep rules, etc.? This should enable us to reproduce the build.
You can generate this by running:
./gradlew assembleRelease --no-daemon -Dcom.android.tools.r8.dumpinputtodirectory=/path/to/r8/dumps
See also
ap...@google.com <ap...@google.com> #3
Hi, thanks for response, here they are
ap...@google.com <ap...@google.com> #4
Thanks for sharing. Looking at the code from the dump it is not immediately clear why this would fail with a NullPointerException. Would it be possible for you to also share the APK that is not working?
ap...@google.com <ap...@google.com> #5
We experience the same problem after we upgraded to Gradle 8. Identical problem as reported in this ticket: with the setActivity call on a session:
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
at com.google.android.gms.internal.fitness.zzfv.zza(com.google.android.gms:play-services-fitness@@21.1.0:1)
at com.google.android.gms.fitness.data.Session$Builder.setActivity(com.google.android.gms:play-services-fitness@@21.1.0:1)
It happens for example when invoking:
val session = Session.Builder()
.setDescription("our description")
.setIdentifier("our package name")
.setActivity(FitnessActivities.SLEEP)
.setStartTime(startSleepTime, TimeUnit.MILLISECONDS)
.setEndTime(endSleepTime, TimeUnit.MILLISECONDS)
.build()
We tried it with both with R8 fullMode default enabled and with R8 full mode disabled, but in both cases the error occurs.
We also tested this with JavaVersion.VERSION_1_8 and with JavaVersion.VERSION_17 and in both cases the problem occurs.
In all cases it works fine with a debug build.
We we revert to gradle 7.4.2. the problem disappears.
Please let me know how we can help you with additional information.
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
at com.google.android.gms.internal.fitness.zzfv.zza(com.google.android.gms:play-services-fitness@@21.1.0:1)
at com.google.android.gms.fitness.data.Session$Builder.setActivity(com.google.android.gms:play-services-fitness@@21.1.0:1)
It happens for example when invoking:
val session = Session.Builder()
.setDescription("our description")
.setIdentifier("our package name")
.setActivity(FitnessActivities.SLEEP)
.setStartTime(startSleepTime, TimeUnit.MILLISECONDS)
.setEndTime(endSleepTime, TimeUnit.MILLISECONDS)
.build()
We tried it with both with R8 fullMode default enabled and with R8 full mode disabled, but in both cases the error occurs.
We also tested this with JavaVersion.VERSION_1_8 and with JavaVersion.VERSION_17 and in both cases the problem occurs.
In all cases it works fine with a debug build.
We we revert to gradle 7.4.2. the problem disappears.
Please let me know how we can help you with additional information.
ap...@google.com <ap...@google.com> #6
Would it be possible for you to share a small project that reproduces this?
The dump shared in
ap...@google.com <ap...@google.com> #7
(I'm not the original poster) I made phone dump just after the crash, I'm not sure if this will help. I don't want to share it here, because then others can download it too. If you want the phone dump log, then please let me know how to share it with you.
A small project reproducing this issue is difficult, it requires the Google Fit integration.
I'm trying to create the code dumps for a release build, but I never use the gradlew command line and it runs with some errors, that I'm not familiar with. I will try it in another way.
A small project reproducing this issue is difficult, it requires the Google Fit integration.
I'm trying to create the code dumps for a release build, but I never use the gradlew command line and it runs with some errors, that I'm not familiar with. I will try it in another way.
ap...@google.com <ap...@google.com> #8
Hi, in the Test1App.zip a very small project. Runs well when compiling as debug, the nullpointer exception occurs when running as release build. The only thing that it does is creating a Google Fit session with Sleep as activity (but it happens also with other activity types).
Please let me know if you need more information.
Please let me know if you need more information.
ap...@google.com <ap...@google.com> #9
Project: r8
Branch: main
commit 6c720a541af1562d61ccb0cf0727df6da0d22ba6
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 10 11:15:30 2023
Fix removal of live array-puts in presence of Assume instruction
Bug: b/280659987
Change-Id: Ief4e51fcccba7e777f57efe9377ab20e89ca0554
M src/main/java/com/android/tools/r8/ir/code/ArrayPut.java
M src/test/java/com/android/tools/r8/rewrite/arrays/ArrayPutsToArrayAliasTest.java
https://r8-review.googlesource.com/79347
Branch: main
commit 6c720a541af1562d61ccb0cf0727df6da0d22ba6
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 10 11:15:30 2023
Fix removal of live array-puts in presence of Assume instruction
Bug:
Change-Id: Ief4e51fcccba7e777f57efe9377ab20e89ca0554
M src/main/java/com/android/tools/r8/ir/code/ArrayPut.java
M src/test/java/com/android/tools/r8/rewrite/arrays/ArrayPutsToArrayAliasTest.java
ap...@google.com <ap...@google.com> #10
Project: r8
Branch: main
commit bed41a13debd0875e508353cf79c33c751e49a22
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 10 11:01:26 2023
Reproduce removal of live array-puts in presence of Assume instruction
Bug: b/280659987
Change-Id: I2bb641c28d6b107db2f3daefd4e7fedcf85cbde9
A src/test/java/com/android/tools/r8/rewrite/arrays/ArrayPutsToArrayAliasTest.java
https://r8-review.googlesource.com/79346
Branch: main
commit bed41a13debd0875e508353cf79c33c751e49a22
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 10 11:01:26 2023
Reproduce removal of live array-puts in presence of Assume instruction
Bug:
Change-Id: I2bb641c28d6b107db2f3daefd4e7fedcf85cbde9
A src/test/java/com/android/tools/r8/rewrite/arrays/ArrayPutsToArrayAliasTest.java
sg...@google.com <sg...@google.com> #11
Project: r8
Branch: 8.0
commit 6392f0ec0142bd168635cb7b8b7610b343679288
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 10 11:28:06 2023
Version 8.0.46
Bug: b/280659987
Change-Id: I98398113ef7db1971e7f91cddf0227d80f715313
M src/main/java/com/android/tools/r8/Version.java
https://r8-review.googlesource.com/79351
Branch: 8.0
commit 6392f0ec0142bd168635cb7b8b7610b343679288
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 10 11:28:06 2023
Version 8.0.46
Bug:
Change-Id: I98398113ef7db1971e7f91cddf0227d80f715313
M src/main/java/com/android/tools/r8/Version.java
gr...@gmail.com <gr...@gmail.com> #12
Project: r8
Branch: 8.0
commit b7985cfb00840d9997e05eb5fa5084df2a7699c4
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 10 11:28:00 2023
Fix removal of live array-puts in presence of Assume instruction
Bug: b/280659987
Change-Id: Ief4e51fcccba7e777f57efe9377ab20e89ca0554
M src/main/java/com/android/tools/r8/ir/code/ArrayPut.java
M src/test/java/com/android/tools/r8/rewrite/arrays/ArrayPutsToArrayAliasTest.java
https://r8-review.googlesource.com/79350
Branch: 8.0
commit b7985cfb00840d9997e05eb5fa5084df2a7699c4
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 10 11:28:00 2023
Fix removal of live array-puts in presence of Assume instruction
Bug:
Change-Id: Ief4e51fcccba7e777f57efe9377ab20e89ca0554
M src/main/java/com/android/tools/r8/ir/code/ArrayPut.java
M src/test/java/com/android/tools/r8/rewrite/arrays/ArrayPutsToArrayAliasTest.java
gr...@gmail.com <gr...@gmail.com> #13
Project: r8
Branch: 8.0
commit 38eb966d483268f8f310b741a2652a64adea7d24
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 10 11:27:54 2023
Reproduce removal of live array-puts in presence of Assume instruction
Bug: b/280659987
Change-Id: I2bb641c28d6b107db2f3daefd4e7fedcf85cbde9
A src/test/java/com/android/tools/r8/rewrite/arrays/ArrayPutsToArrayAliasTest.java
https://r8-review.googlesource.com/79349
Branch: 8.0
commit 38eb966d483268f8f310b741a2652a64adea7d24
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 10 11:27:54 2023
Reproduce removal of live array-puts in presence of Assume instruction
Bug:
Change-Id: I2bb641c28d6b107db2f3daefd4e7fedcf85cbde9
A src/test/java/com/android/tools/r8/rewrite/arrays/ArrayPutsToArrayAliasTest.java
Description
Implementing b/214018111 shows an issue found in
ClassNameMinifierOriginalClassNameTest
.Here the expected encoding of the mapping would become:
But the overlap in residual name
A
causes the map to be clobbered. The source for original type A is needed, but it has no residual output so the mapping should be something like: