ministero-salute / it-dgc-verificac19-sdk-android

Digital Covid Certificate SDK
Apache License 2.0
57 stars 30 forks source link

Upgrade ad Android gradle plugin 7+ #174

Closed salmattia closed 1 year ago

salmattia commented 2 years ago

Buongiorno, è previsto in futuro l'innalzamento della versione di Android gradle plugin alla versione 7 o superiore? Grazie per l'informazione

salmattia commented 2 years ago

Buonasera, sto provando ad importare l'ultima versione di Jetpack compose nella mia app dove sto già utlizzando l'SDK. Ho necessità di portare android gradle plugin alla versione 7 o superiore e kotlin alla versione 1.6.10 o superiore Ho condotto qualche esperimento e dopo parecchia fatica dovrei aver trovato la quadra

Nel file Versions.kt ho cambiato la versione di gradle il che richiede di incrementare hilt alla versione 2.37 o superiore

const val gradle = "7.0.2"
const val hilt_version = "2.37"

fatto ciò ottenevo un errore di questo tipo in fase di build

error: [Hilt] Cannot process new app roots when there are app roots from a previous compilation unit: App roots in previous compilation unit: it.ministerodellasalute.verificaC19sdk.VerificaSDKApplication App roots in this compilation unit: com.salmattia.JetpackComposeTest

dovuto al fatto che la classe application della mia app è annotata come @HiltAndroidApp ho corretto il problema aggiungendo questo argomento nel build.gradle dell'app come documentato qui (Turning off the cross compilation root validation)

kapt {
    arguments {
        arg("dagger.hilt.disableCrossCompilationRootValidation", true)
    }
}

Ho successivamente innalzato la versione di kotlin modificando il file Versions.kt

const val kotlin = "1.6.10"

fatto questo ottengo un errore di questo tipo. * What went wrong: Execution failed for task ':sdk:codeCoverageDebugReport'. Error while creating report Unexpected SMAP line: *S KotlinDebug

sinceramente non ho compreso fino in fondo cosa significhi ma si risolve aggiungendo al file build.gradle del progetto dgc-sdk

jacoco {
    toolVersion = "0.8.7"
}

Tutte queste modifiche sono nel mio fork di questo repository. Cosa ne pensate? Se credete che vi sia utile posso fare una pull request.

Grazie per l'attenzione

rawmain commented 2 years ago

Ciao @salmattia

Ho necessità di portare android gradle plugin alla versione 7 o superiore e kotlin alla versione 1.6.10 o superiore [...] Tutte queste modifiche sono nel mio fork

Ho dato una veloce occhiata alle modifiche dei tuoi commit. Di base non vedo particolari controindicazioni per implementarle - evitando modifiche locali al codice dgc-sdk - tramite modifiche/override in allprojects del root-project build.gradle.

Tanto per quanto riguarda il cambio versione di gradle / hilt / kotlin - vedasi anche resolutionStrategy force per le dependencies

    project.configurations.all {
        resolutionStrategy {
            force ...
        }
    }

Quanto per l'impostazione toolVersion del plugin JaCoCo

  apply plugin: 'jacoco'

  jacoco {
    toolVersion = '0.8.7'
  }

Suggerirei pertanto di verificare/procedere in tal senso per l'importazione dell'ultima versione di JetPack compose nella vs. app.

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.