Atualizando o projeto antigo gradle2.3.3 para 4.0, uma etapa de cada vez

O projeto usa anotações do Android. Recentemente, não importa como eu o construa, ele não consegue compilar. Fui ao site oficial e vi que sim.

AndroidAnnotations está obsoleto. Não haverá mais desenvolvimento.

Obrigado por todo o vosso apoio!

Infelizmente, o número da versão permanecerá sempre em 4.8.0.
O fato de não terem modificado parece ser problema deles. O projeto foi construído em 2016 e o ​​gradle ainda é 2.3. Basta atualizá-lo.

1. Remova o apto

apt "org.androidannotations:androidannotations:$AAVersion"
修改成
annotationProcessor "org.androidannotations:androidannotations:$AAVersion

Remover gradle do aplicativo

aplicar plugin: 'android-apt'

e

apt { 
    argumentos { 
        androidManifestFile variante.outputs[0]?.processResources?.manifestFile 
        resourcePackageName 'com.zhaomi.wisdomstudy' 
}

Remover do projeto Gradle

caminho de classe 'com.neenbedankt.gradle.plugins:android-apt:1.8'

2.Não foi possível HEAD 'http://dl.bintray.com/populov/maven/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.72/kotlin-stdlib-jdk8-1.3.72.pom'. Código de status recebido 502 do servidor: Bad Gateway

Coloque no projeto Gradle

maven { url "http://dl.bintray.com/populov/maven" }

Observe que o agente do Alibaba Cloud foi adicionado e o agente pode ser usado

maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } 
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' } 
maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' } 
maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }

3.Não é possível definir o valor da propriedade somente leitura 'outputFile' para ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=xiaomiDebug, filtros=[], versionCode=232, versionName=2.3.3.1}} do tipo com.android .build.gradle.internal.api.ApkVariantOutputImpl.

código original

applicationVariants.all { variante -> 
    variante.outputs.each { saída -> 
        def outputFile = output.outputFile 
        if (outputFile! = null && outputFile.name.endsWith('.apk')) { 
            def fileName = outputFile.name.replace (".apk", "-${defaultConfig.versionName}.apk") 
            output.outputFile = novo arquivo (outputFile.parent, fileName) 
        } 
    } 
}

Após modificação

applicationVariants.all { variante -> 
    variante.outputs.all { saída -> 
        def outputFile = output.outputFile 
        if (outputFile! = null && outputFile.name.endsWith('.apk')) { 
            def fileName = outputFile.name.replace (".apk", "-${defaultConfig.versionName}.apk") 
            saídaNomeArquivo = nomeArquivo 
        } 
    } 
}

4.A versão minSdk não deve ser declarada no arquivo de manifesto do Android. Você pode mover a versão do manifesto para defaultConfig no arquivo build.gradle.

dentro do manifesto

<usa-sdk 
    android:minSdkVersion="9" 
    android:targetSdkVersion="29" 
    ferramentas:overrideLibrary="com.huawei.android.hms.base,com.huawei.android.hms.push , cn.jpush.android.thirdpush .meizu"/>

Remova as linhas minsdkVersion e targetSdkVersion

5.Todos os sabores agora devem pertencer a uma dimensão de sabor nomeada.

Adicione-o ao defaultConfig{} no aplicativo Gradle

saborDimensions "versionCode"

6.Falha ao analisar XML em /Users/zp_lxy/Desktop/project///app/src/main/AndroidManifest.xml
ParseError em [row,col]:[37,5]

Depois de localizá-lo, descobri que o método de comentário usado no manifesto era "//", que não é compatível no momento. Modifique-o.

7.> Tarefa :app:compileXiaomiDebugJavaWithJavac
Os seguintes processadores de anotação não são incrementais: androidannotations-4.6.0.jar (org.androidannotations:androidannotations:4.6.0).
Certifique-se de que todos os processadores de anotação sejam incrementais para melhorar a velocidade de construção.

dentro do aplicativo Gradle

javaCompileOptions { 
    annotationProcessorOptions { 
        argumentos = [ 
                "androidManifestFile": "$projectDir/src/main/AndroidManifest.xml".toString() 
        ] 
    } 
}

Não há problema em compilar novamente e ele é executado com sucesso.

Acho que você gosta

Origin blog.csdn.net/u010055598/article/details/125479683
Recomendado
Clasificación