Me he puesto a querer actualizar un proyecto para usar como target el Android 31 y kotlin 1.6 y como no a arrojado un puñado de errores
Primero de todo el gradle a nivel de módulo, añadir kotlin_version a 1.6.0 y build:gradle a 7.0.3 dejo el gradle entero
buildscript {
ext.kotlin_version = "1.6.0"
repositories {
google()
mavenCentral()
maven { url "https://jitpack.io" }
}
dependencies {
classpath 'com.android.tools.build:gradle:7.0.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
mavenCentral()
maven { url "https://jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
en el archivo gradle a nivel de aplicación hacer los siguientes ajustes
compileSdkVersion a 31 y targetSdkVersion a 31 en la sección dependencies especificar que el stdlib debe usar jdk8 y el core-ktx a 1.7.0
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation 'androidx.core:core-ktx:1.7.0'
En AndroidManifest.xml la actividad principal se debe asignar la propiedad exported=true
<activity
...
android:exported="true"
...>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Si se quiere actualizar el módulo para tests
testImplementation 'junit:junit:5'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'