Skip to content

Update androidx.navigation transitive dependency to fix RUM obfuscation with R8 #2369

Description

@plastiv

Describe the bug

Datadog brings very old androidx.navigation incompatible with R8.fullMode which is default since AGP 8.0.

Please update the dependency to include the fix https://issuetracker.google.com/issues/191654433 .

androidXNavigation = "2.3.0"

Reproduction steps

  1. Add datadog sdk "2.14.0" to the android project
  2. Validate android.enableR8.fullMode is not set nor overwritten at gradle.properties (run with defaults)
  3. Build project with android gradle plugin "8.7.1" (probably reproducible with any AGP 8.x didn't check)
  4. Observe R8 warnings (errors)

Logcat logs

Build output

AGPBI: {"kind":"warning","text":"The class androidx.navigation.NavType is present but not the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String) which suggests some unsupported set-up where androidx is pre-shrunk without keeping the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String).","sources":[{}],"tool":"D8"}
AGPBI: {"kind":"warning","text":"The class androidx.navigation.NavType is present but not the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String) which suggests some unsupported set-up where androidx is pre-shrunk without keeping the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String).","sources":[{}],"tool":"D8"}
AGPBI: {"kind":"warning","text":"The class androidx.navigation.NavType is present but not the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String) which suggests some unsupported set-up where androidx is pre-shrunk without keeping the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String).","sources":[{}],"tool":"D8"}
AGPBI: {"kind":"warning","text":"The class androidx.navigation.NavType is present but not the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String) which suggests some unsupported set-up where androidx is pre-shrunk without keeping the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String).","sources":[{}],"tool":"D8"}
AGPBI: {"kind":"warning","text":"The class androidx.navigation.NavType is present but not the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String) which suggests some unsupported set-up where androidx is pre-shrunk without keeping the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String).","sources":[{}],"tool":"D8"}
AGPBI: {"kind":"warning","text":"The class androidx.navigation.NavType is present but not the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String) which suggests some unsupported set-up where androidx is pre-shrunk without keeping the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String).","sources":[{}],"tool":"D8"}
AGPBI: {"kind":"warning","text":"The class androidx.navigation.NavType is present but not the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String) which suggests some unsupported set-up where androidx is pre-shrunk without keeping the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String).","sources":[{}],"tool":"D8"}
AGPBI: {"kind":"warning","text":"The class androidx.navigation.NavType is present but not the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String) which suggests some unsupported set-up where androidx is pre-shrunk without keeping the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String).","sources":[{}],"tool":"D8"}
AGPBI: {"kind":"warning","text":"The class androidx.navigation.NavType is present but not the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String) which suggests some unsupported set-up where androidx is pre-shrunk without keeping the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String).","sources":[{}],"tool":"D8"}
AGPBI: {"kind":"warning","text":"The class androidx.navigation.NavType is present but not the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String) which suggests some unsupported set-up where androidx is pre-shrunk without keeping the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String).","sources":[{}],"tool":"D8"}
AGPBI: {"kind":"warning","text":"The class androidx.navigation.NavType is present but not the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String) which suggests some unsupported set-up where androidx is pre-shrunk without keeping the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String).","sources":[{}],"tool":"D8"}
AGPBI: {"kind":"warning","text":"The class androidx.navigation.NavType is present but not the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String) which suggests some unsupported set-up where androidx is pre-shrunk without keeping the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String).","sources":[{}],"tool":"D8"}
The class androidx.navigation.NavType is present but not the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String) which suggests some unsupported set-up where androidx is pre-shrunk without keeping the method androidx.navigation.NavType androidx.navigation.NavType$Companion.fromArgType(java.lang.String, java.lang.String).

Expected behavior

No build warnings / no runtime issues with minimized/obfuscated builds.

Affected SDK versions

2.14

Latest working SDK version

didn't check, we just integrated datadog month ago

Did you confirm if the latest SDK version fixes the bug?

Yes

Kotlin / Java version

No response

Gradle / AGP version

No response

Other dependencies versions

No response

Device Information

No response

Other relevant information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions