Code Monkey home page Code Monkey logo

Comments (7)

hs-kdhillon avatar hs-kdhillon commented on August 16, 2024 1

Yes look likes 1.1.12-SNAPSHOT fixes this issue. I will bring my dependency to this version and report if the issue will be fixed or not soon.

from dd-sdk-android.

hs-kdhillon avatar hs-kdhillon commented on August 16, 2024 1

TLDR: Steps to resolve

  1. Updated AGP version from 3.2.0 to 3.6.0 and Gradle version from 4.9 to 5.6.4.
  2. Updating Parceler dependency org.parceler:parceler from 1.1.5 to 1.1.13 and org.parceler:parceler-api from .1.1.5 to 1.1.13.

Thank you @xgouchet for your help 👍 ! Closing the issue now.

from dd-sdk-android.

xgouchet avatar xgouchet commented on August 16, 2024

Hello @hs-kdhillon, can you share with us the dependencies block in your gradle file. Without that we won't be able to reproduce this on our end.

Regarding the issue itself, when there is a conflict in transitive dependencies (one library depends on androidx.fragment:fragment 1.1.0, the other on 1.2.4), Gradle will automatically bump every one to use the latest.

Although this doesn't look like what your stacktrace is saying. Googling around, I found this stackoverflow issue that might be related to your actual issue, and is linked to a bug in AGP was fixed in version 3.6 (you're using AGP 3.2 right ?)

from dd-sdk-android.

hs-kdhillon avatar hs-kdhillon commented on August 16, 2024

Here are the dependencies for project's build.gradle:

dependencies {
        classpath BuildPlugins.kotlinGradlePlugin
        classpath BuildPlugins.androidGradlePlugin
        classpath BuildPlugins.googleServicesPlugin
        classpath BuildPlugins.realmPlugin
        classpath BuildPlugins.firebaseCrashlyticsPlugin
        classpath BuildPlugins.firebasePerformancePlugin
    }

Here are the dependencies for app's build.gradle:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    api project(':common')
    implementation(Libs.androidSupportLibraryV7)
    api(Libs.dagger)
    annotationProcessor(Libs.daggerCompiler)
    kapt(Libs.daggerCompiler)
    api(Libs.retrofit)
    api(Libs.retrofitGsonConverter)
    api(Libs.retrofitRxJavaAdapter)
    api(Libs.okhttp3LoggingInterceptor)
    api(Libs.icepick)
    annotationProcessor(Libs.icepickProcessor)
    kapt(Libs.icepickProcessor)
    api(Libs.timber)
    api(Libs.googlePlayServicesAnalytics)
    api(Libs.googlePlayServicesBase)
    api(Libs.googlePlayServicesGoogleCloudMessaging)
    api(Libs.googlePlayServicesLocation)
    api(Libs.googlePlayServicesMaps)
    api(Libs.googlePlayServicesAuth)
    api(Libs.googleMapsUtil)
    api(Libs.firebaseRemoteConfig)
    api(Libs.jodaTime)
    api(Libs.mixpanel)
    api(Libs.firebaseAnalytics)
    api(Libs.firebaseNewCrashlytics)
    testImplementation(Libs.leakCanaryNoOp)
    debugImplementation(Libs.leakCanary)
    releaseImplementation(Libs.leakCanaryNoOp)
    api(Libs.processPhoenixx)
    api(Libs.branch) { exclude module: 'answers-shim' }
    api(Libs.uxCam)
    api(Libs.onRadar) { exclude module: 'support-v4' exclude module: 'play-services-location' }
    api(Libs.calligraphy)
    api(Libs.viewpump)
    annotationProcessor(Libs.dataBindingAnnotationProcessor)
    api(Libs.fancyButtons)
    api(Libs.gifDrawable)
    api(Libs.picassoTransformations)
    api(Libs.percentDimensions)
    api(Libs.glide)
    api(Libs.realmAdapter)
    annotationProcessor(Libs.parceler)
    kapt(Libs.parceler)
    api(Libs.swipeLayout)
    api(Libs.grantlandAutoFitTextView)
    api(Libs.roundedImageView)
    api(Libs.androidSupportLibraryCardView)
    api(Libs.androidSupportConstraintLayout)
    api(Libs.circleImageView)
    api(Libs.kotlinCoroutinesCore)
    api(Libs.kotlinCoroutinesAndroid)
    api(Libs.androidxLifecycleViewModel)
    implementation(Libs.androidxLifecycleOnly)
    implementation(Libs.androidxLifecycleLivedata)
    implementation(Libs.materialMenu)
    implementation(Libs.nekocodeBadge)
    implementation "com.datadoghq:dd-sdk-android:1.7.0"
}

Here is the Dependencies.kt file under BuildSrc:

object BuildPlugins {
    object Versions {
        const val kotlinGradlePlugin = "1.3.61"
        const val androidGradlePlugin = "3.2.0"
        const val googleServicesPlugin = "3.1.1"
        const val realmPlugin = "4.3.2"
        const val firebaseCrashlyticsPlugin = "2.3.0"
        const val firebasePerformancePlugin = "1.3.1"
    }

    const val kotlinGradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlinGradlePlugin}"
    const val androidGradlePlugin = "com.android.tools.build:gradle:${Versions.androidGradlePlugin}"
    const val googleServicesPlugin = "com.google.gms:google-services:${Versions.googleServicesPlugin}"
    const val realmPlugin = "io.realm:realm-gradle-plugin:${Versions.realmPlugin}"
    const val firebasePerformancePlugin = "com.google.firebase:perf-plugin:${Versions.firebasePerformancePlugin}"
    const val firebaseCrashlyticsPlugin = "com.google.firebase:firebase-crashlytics-gradle:${Versions.firebaseCrashlyticsPlugin}"
}

object ProjectVersions {
    const val kotlinVersion = "1.3.61"
    const val androidSupportLibrary = "1.0.0"
    const val googlePlayServices = "17.0.0"
    const val buildTools = "26.0.2"
    const val minSdk = 21
    const val compileSdk = 29
    const val versionCode = 465
    const val versionName = "4.1.75"
}

object Libs {
    const val crashlytics = "com.crashlytics.sdk.android:crashlytics:2.6.7@aar"
    const val crashlyticsAnswers = "com.crashlytics.sdk.android:answers:1.3.12@aar"
    const val androidSupportLibraryV7 = "androidx.appcompat:appcompat:${ProjectVersions.androidSupportLibrary}"
    const val androidSupportLibraryV4 = "androidx.legacy:legacy-support-v4:1.0.0"
    const val androidSupportLibraryV4Compat = "androidx.core:core:${ProjectVersions.androidSupportLibrary}"
    const val androidxLegacySupportLibraryV13 = "androidx.legacy:legacy-support-v13:${ProjectVersions.androidSupportLibrary}"
    const val androidSupportLibraryDesign = "com.google.android.material:material:1.1.0"
    const val androidSupportLibraryRecyclerView = "androidx.recyclerview:recyclerview:${ProjectVersions.androidSupportLibrary}"
    const val androidSupportConstraintLayout = "androidx.constraintlayout:constraintlayout:1.1.3"
    const val androidSupportTransition = "androidx.transition:transition:${ProjectVersions.androidSupportLibrary}"
    const val androidSupportTestRunner = "androidx.test:runner:1.0.1"
    const val androidSupportLibraryCardView = "androidx.cardview:cardview:1.0.0"
    const val androidSdkCrashlytics = "com.crashlytics.sdk.android:crashlytics:2.10.1"
    const val firebaseNewCrashlytics = "com.google.firebase:firebase-crashlytics:17.0.0"
    const val firebaseCore = "com.google.firebase:firebase-core:${ProjectVersions.googlePlayServices}"
    const val firebaseRemoteConfig = "com.google.firebase:firebase-config:${ProjectVersions.googlePlayServices}"
    const val firebaseAnalytics = "com.google.firebase:firebase-analytics:${ProjectVersions.googlePlayServices}"
    const val firebasePerformance = "com.google.firebase:firebase-perf:${ProjectVersions.googlePlayServices}"
    const val googlePlayServicesBase = "com.google.android.gms:play-services-base:${ProjectVersions.googlePlayServices}"
    const val googlePlayServicesGoogleCloudMessaging = "com.google.android.gms:play-services-gcm:${ProjectVersions.googlePlayServices}"
    const val googlePlayServicesLocation = "com.google.android.gms:play-services-location:${ProjectVersions.googlePlayServices}"
    const val googlePlayServicesMaps = "com.google.android.gms:play-services-maps:${ProjectVersions.googlePlayServices}"
    const val googlePlayServicesAuth = "com.google.android.gms:play-services-auth:${ProjectVersions.googlePlayServices}"
    const val googlePlayServicesAnalytics = "com.google.android.gms:play-services-analytics:${ProjectVersions.googlePlayServices}"
    const val googleMapsUtil = "com.google.maps.android:android-maps-utils:0.5"
    const val materialLibrary = "com.google.android.material:material:1.1.0"
    const val icepick = "frankiesardo:icepick:3.2.0"
    const val icepickProcessor = "frankiesardo:icepick-processor:3.2.0"
    const val retrofit = "com.squareup.retrofit2:retrofit:2.7.1"
    const val retrofitGsonConverter = "com.squareup.retrofit2:converter-gson:2.7.1"
    const val retrofitRxJavaAdapter = "com.squareup.retrofit2:adapter-rxjava2:2.3.0"
    const val okhttp3LoggingInterceptor = "com.squareup.okhttp3:logging-interceptor:3.9.0"
    const val picasso = "com.squareup.picasso:picasso:2.5.2"
    const val nekocodeBadge = "com.github.nekocode:Badge:1.2"
    const val timber = "com.jakewharton.timber:timber:4.7.1"
    const val jodaTime = "joda-time:joda-time:2.9.4"
    const val mixpanel = "com.mixpanel.android:mixpanel-android:4.6.4"
    const val grantlandAutoFitTextView = "me.grantland:autofittextview:0.2.1"
    const val kotlinCoroutinesCore = "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.3"
    const val kotlinCoroutinesAndroid = "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.3"
    const val androidxLifecycleViewModel = "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0"
    const val androidxLifecycleLivedata = "androidx.lifecycle:lifecycle-livedata-ktx:2.2.0"
    const val androidxLifecycleOnly = "androidx.lifecycle:lifecycle-runtime-ktx:2.2.0"
    const val androidLifecycleOnly = "androidx.lifecycle:lifecycle-runtime:2.0.0"
    const val parceler = "org.parceler:parceler:1.1.5"
    const val parcelerApi = "org.parceler:parceler-api:1.1.5"
    const val freeBuilder = "org.inferred:freebuilder:1.14.1"
    const val javaAnnotations = "javax.annotation:jsr250-api:1.0"
    const val junit = "junit:junit:4.12"
    const val lottie = "com.airbnb.android:lottie:2.5.0"
    const val autoValueProcessor = "com.google.auto.value:auto-value:1.4.1"
    const val kotlinStandardLibraryJDK7 = "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${ProjectVersions.kotlinVersion}"
    const val dagger = "com.google.dagger:dagger:2.11"
    const val daggerCompiler = "com.google.dagger:dagger-compiler:2.11"
    const val rxJava = "io.reactivex.rxjava2:rxjava:2.+"
    const val rxAndroid = "io.reactivex.rxjava2:rxandroid:2.+"
    const val androidLifecycleExtensions = "androidx.lifecycle:lifecycle-extensions:2.0.0"
    const val androidLifecycleAnnotationProcessor = "androidx.lifecycle:lifecycle-compiler:2.0.0"
    const val dataBindingAnnotationProcessor = "com.android.databinding:compiler:3.1.0"
    const val butterknife = "com.jakewharton:butterknife:8.1.0"
    const val butterknifeCompiler = "com.jakewharton:butterknife-compiler:8.1.0"
    const val leakCanary = "com.squareup.leakcanary:leakcanary-android:1.5.4"
    const val leakCanaryNoOp = "com.squareup.leakcanary:leakcanary-android-no-op:1.5.4"
    const val processPhoenixx = "com.jakewharton:process-phoenix:2.0.0"
    const val branch = "io.branch.sdk.android:library:2.11.1"
    const val uxCam = "com.uxcam:uxcam:2.6.2@aar"
    const val onRadar = "com.onradar:sdk:1.2.19"
    const val calligraphy = "io.github.inflationx:calligraphy3:3.1.1"
    const val viewpump = "io.github.inflationx:viewpump:2.0.3"
    const val fancyButtons = "com.github.medyo:fancybuttons:1.5@aar"
    const val gifDrawable = "pl.droidsonroids.gif:android-gif-drawable:1.2.6"
    const val picassoTransformations = "jp.wasabeef:picasso-transformations:2.1.0"
    const val percentDimensions = "androidx.percentlayout:percentlayout:${ProjectVersions.androidSupportLibrary}"
    const val glide = "com.github.bumptech.glide:glide:3.7.0"
    const val realmAdapter = "io.realm:android-adapters:2.0.0"
    const val swipeLayout = "com.daimajia.swipelayout:library:1.2.0@aar"
    const val roundedImageView = "com.makeramen:roundedimageview:2.3.0"
    const val circleImageView = "com.mikhaellopez:circularimageview:4.2.0"
    const val materialMenu = "com.balysv.materialmenu:material-menu-toolbar:1.5.4"
    const val espressoCore = "androidx.test.espresso:espresso-core:3.1.0"
    const val mpAndroidChart = "com.github.PhilJay:MPAndroidChart:v3.1.0"
    const val androidxTestRunner = "androidx.test:runner:1.2.0"
    const val androidxTestRules = "androidx.test:rules:1.2.0"
    const val androidxTestCore = "androidx.test:core:1.2.0"
    const val androidxTestKtx = "androidx.test:core-ktx:1.2.0"
    const val androidxJunit = "androidx.test.ext:junit:1.1.1"
    const val androidxJunitKtx = "androidx.test.ext:junit-ktx:1.1.1"
    const val materialDialogLib = "com.shreyaspatil:MaterialDialog:2.1"
}

Thanks for the tip with transitive dependencies!

Yes, the AGP version is 3.2.0. I will try to look into the above mentioned Stackoverflow issue and also try to upgrade the AGP version(although it might take sometime).

from dd-sdk-android.

hs-kdhillon avatar hs-kdhillon commented on August 16, 2024

Upgrading AGP version to 3.6.0 and Gradle version to 5.6.4 leads to this error:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':common:kaptGenerateStubsDebugKotlin'.
> Could not resolve all files for configuration ':common:kapt'.
   > Failed to transform artifact 'parceler.jar (org.parceler:parceler:1.1.5)' to match attributes {artifactType=processed-jar, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}.
      > Execution failed for JetifyTransform: /Users/karandhillon/.gradle/caches/modules-2/files-2.1/org.parceler/parceler/1.1.5/d6f8c6fcdbebda5a33fd3fe3aabf13bef67a9127/parceler-1.1.5.jar.
         > Failed to transform '/Users/karandhillon/.gradle/caches/modules-2/files-2.1/org.parceler/parceler/1.1.5/d6f8c6fcdbebda5a33fd3fe3aabf13bef67a9127/parceler-1.1.5.jar' using Jetifier. Reason: The given artifact contains a string literal with a package reference 'android.support.v4.widget' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.. (Run with --stacktrace for more details.)

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 3m 25s
34 actionable tasks: 34 executed

from dd-sdk-android.

xgouchet avatar xgouchet commented on August 16, 2024

Hi @hs-kdhillon , from the error message in your comment:

Failed to transform '…/parceler-1.1.5.jar' using Jetifier.
Reason: The given artifact contains a string literal with a package reference 'android.support.v4.widget' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.

it seems one of your dependency, the Parceler library is not compatible with Jetpack as it uses reflection expecting the legacy AppCompat dependencies. This issue has already been raised on their repository and it should be fixed in version Parceler version 1.1.12 or higher.

from dd-sdk-android.

hs-kdhillon avatar hs-kdhillon commented on August 16, 2024

Updating Parceler dependency resolved the issue.

from dd-sdk-android.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.