4
votes

Impossible de migrer vers androidX

Tentative de migration vers androidx via Refractor> Migrer vers AndroidX, je l'ai essayé plusieurs fois (invalider le cache et redémarrer, nettoyer, reconstruire) mais chaque fois qu'un traitement et un chargement sont effectués et les journaux d'erreurs suivants apparaissent:

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.cinopsys.movieshows"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            useProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {

    def support_version = "28.0.0"
    def room_version = "1.1.1"
    def lifecycle_version = "1.1.1"
    def retrofitVersion = "2.4.0"
    def okhttpLoggingInterceptorVersion = "3.9.1"
    def paging_version = "1.0.1"
    def coroutines_version = "1.1.0"
    def firebase_version = "16.0.6"
    def crashlytics_version = "2.9.8"
    def fcm_version = "17.3.4"
    def glide_version = "4.8.0"
    def versions_work = "1.0.0-beta03"


    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation "com.android.support:appcompat-v7:$support_version"
    implementation "com.android.support:support-v4:$support_version"
    implementation "com.android.support:support-media-compat:$support_version"
    implementation "com.android.support:design:$support_version"
    implementation "com.android.support:cardview-v7:$support_version"
    implementation "com.android.support:recyclerview-v7:$support_version"
    implementation "com.android.support:preference-v7:$support_version"
    implementation "com.android.support:preference-v14:$support_version"
    implementation "com.github.bumptech.glide:glide:$glide_version"
    implementation "com.google.firebase:firebase-messaging:$fcm_version"
    implementation 'com.android.support:support-v4:28.0.0'
    kapt "com.github.bumptech.glide:compiler:$glide_version"

    //Expandable TextView
    implementation 'com.ms-square:expandableTextView:0.1.4'

    //Work Manager
    implementation "android.arch.work:work-runtime:$versions_work"

    //Paging
    implementation "android.arch.paging:runtime:$paging_version"

    //Room
    implementation "android.arch.persistence.room:runtime:$room_version"
    kapt "android.arch.persistence.room:compiler:$room_version"

    //ViewModel and LiveData
    implementation "android.arch.lifecycle:extensions:$lifecycle_version"
    kapt "android.arch.lifecycle:compiler:$lifecycle_version"

    //firebase
    implementation "com.google.firebase:firebase-core:$firebase_version"
    implementation "com.crashlytics.sdk.android:crashlytics:$crashlytics_version"

    // retrofit
    implementation "com.squareup.retrofit2:retrofit:$retrofitVersion"
    implementation "com.squareup.retrofit2:converter-gson:$retrofitVersion"
    implementation "com.squareup.retrofit2:retrofit-mock:$retrofitVersion"
    implementation "com.squareup.okhttp3:logging-interceptor:$okhttpLoggingInterceptorVersion"

    //kotlin coroutines
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"


    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
}
apply plugin: 'com.google.gms.google-services'

Voici mon fichier de gradation de niveau projet:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.3.11'
    repositories {
        google()
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.2.0'
        classpath 'io.fabric.tools:gradle:1.27.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://maven.google.com/' }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Et voici mes fichiers de gradation de niveau d'application:

java.lang.IllegalArgumentException: Argument for @NotNull parameter 'element' of org/jetbrains/android/refactoring/MigrateToAppCompatUsageInfo$GradleUsageInfo.<init> must not be null
    at org.jetbrains.android.refactoring.MigrateToAppCompatUsageInfo$GradleUsageInfo.$$$reportNull$$$0(MigrateToAppCompatUsageInfo.java)
    at org.jetbrains.android.refactoring.MigrateToAppCompatUsageInfo$GradleUsageInfo.<init>(MigrateToAppCompatUsageInfo.java)
    at org.jetbrains.android.refactoring.MigrateToAppCompatUsageInfo$AddGoogleRepositoryUsageInfo.<init>(MigrateToAppCompatUsageInfo.java:714)
    at org.jetbrains.android.refactoring.MigrateToAndroidxProcessor$findUsagesInBuildFiles$2.invoke(MigrateToAndroidxProcessor.kt:456)
    at org.jetbrains.android.refactoring.MigrateToAndroidxProcessor.findUsagesInBuildFiles(MigrateToAndroidxProcessor.kt:463)
    at org.jetbrains.android.refactoring.MigrateToAndroidxProcessor.findUsages(MigrateToAndroidxProcessor.kt:220)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:959)
    at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:57)
    at com.intellij.refactoring.BaseRefactoringProcessor.lambda$doRun$0(BaseRefactoringProcessor.java:189)
    at com.intellij.openapi.progress.impl.CoreProgressManager$2.run(CoreProgressManager.java:247)
    at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:736)
    at com.intellij.openapi.progress.impl.CoreProgressManager$5.run(CoreProgressManager.java:434)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:157)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:580)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:525)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:85)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:144)
    at com.intellij.openapi.application.impl.ApplicationImpl.lambda$null$10(ApplicationImpl.java:574)
    at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:314)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)


0 commentaires

3 Réponses :


0
votes

Essayez d'ajouter ces deux lignes dans gradle.properties:

android.useAndroidX=true
android.enableJetifier=true

Et mettez également à jour vos bibliothèques vers la dernière version disponible pour votre cas d'utilisation.


2 commentaires

J'ai essayé cela, mais mon projet ne se compile pas avec la fusion du manifeste d'erreur a échoué.


J'ai ajouté ces lignes. En gros, j'ai suivi toutes les instructions ici , puis les caches invalides. Ça a marché.



3
votes

Il s'agit d'un problème connu, enregistré ici: https://issuetracker.google.com/issues/ 123303598

Une alternative est d'utiliser et d'adapter ce script et de faire la conversion à la main: https: // gist .github.com / dlew / 5db1b780896bbc6f542e7c00a11db6a0


0 commentaires

0
votes

Ce bogue est donc corrigé dans Android Studio 3.4. Cependant, vous devez modifier la plupart des importations et les fichiers XML manuellement.


2 commentaires

Alors qu'est-ce qui est fixé alors? Je commence à détester le studio Android et leurs mises à jour effrayantes.


D'accord, mais je vous recommande vraiment de passer à AndroidX. Le plus tôt sera le mieux.