-
-
Notifications
You must be signed in to change notification settings - Fork 467
Description
Integration
sentry-android
Build System
Gradle
AGP Version
7.4.2
Proguard
Enabled
Version
8.35.0
Steps to Reproduce
After the protobuf-javalite → epitaph migration in #5157 (released in 8.35.0), Android builds fail with a D8 NullPointerException when dexing epitaph-0.1.0.jar.
This issue was discovered in Unreal SDK, where the epitaph dependency is pulled via Gradle during Android builds.
Related items:
- Fix build errors for Android target sentry-unreal#1288
- chore(deps): Revert update Java SDK to v8.35.0 sentry-unreal#1289
This behavior likely occurs because Epitaph's enum classes (Architecture, MemoryError.Tool, MemoryError.Type) are compiled without the -parameters javac flag. This causes the compiler to emit MethodParameters attributes with null names for synthetic enum constructor parameters. D8 calls String.length() on these null names, which results in a crash.
Adding the -parameters flag to Epitaph’s build.gradle.kts and rebuilding the library locally confirmed that this resolves the issue.
Side note: upgrading to Android Gradle Plugin 8.x may resolve the issue, but this is not feasible for some older Unreal Engine versions we support due to other compatibility constraints.
Expected Result
Build completes successfully.
Actual Result
Build fails with the following exception:
> Task :app:mergeExtDexDebug
ERROR:/home/gh/.gradle/caches/8.14.2/transforms/d88f69e91bb61f3a6d035f24ed1e8d37/transformed/epitaph-0.1.0.jar: D8: java.lang.NullPointerException: Cannot invoke "String.length()" because "<parameter1>" is null
...
> Failed to transform epitaph-0.1.0.jar (com.abovevacant:epitaph:0.1.0)
> Execution failed for DexingNoClasspathTransform
> Error while dexing.
Metadata
Metadata
Assignees
Labels
Projects
Status