【问题标题】:Problems after updating to AndroidX Libraries and Gradle 3.4.2更新到 AndroidX 库和 Gradle 3.4.2 后的问题
【发布时间】:2019-12-09 23:16:48
【问题描述】:

我有一个使用 webview 的简单应用程序。我想在我的应用程序中使用 androidx 和 gradle 3.4.2。所以我对我的 gradle 文件进行了一些更改。见下文:

在应用级 gradle 文件中:

android {
    compileSdkVersion 28
    .........
    defaultConfig {
       .........
        minSdkVersion 16
        targetSdkVersion 28
        .........
    }
   .........
}
repositories {
    mavenCentral()
}
dependencies {
    .........
    implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
    implementation 'com.google.android.material:material:1.1.0-alpha09'
    implementation 'com.google.firebase:firebase-core:17.0.1'
    implementation 'com.google.android.gms:play-services-tagmanager:17.0.0'
    implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
    implementation 'com.google.firebase:firebase-perf:18.0.1'
    .........
}

apply plugin: 'com.google.gms.google-services'

在项目级 gradle 文件中:

buildscript {
    repositories {
        google()
        jcenter()
        maven {
            url 'https://maven.fabric.io/public'
        }

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2'
        classpath 'com.google.gms:google-services:4.3.0'
        classpath 'com.google.firebase:perf-plugin:1.3.0'
        classpath 'io.fabric.tools:gradle:1.31.0'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

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

在 gradle.properties 文件中:

systemProp.http.proxyPassword=
systemProp.http.proxyHost=.....
systemProp.http.proxyUser=.....
systemProp.http.proxyPort=8080
android.useAndroidX=true
android.enableJetifier=true

但我在同步我的项目后收到了一些警告。项目构建并成功运行。我想删除这些警告,但我不知道如何删除这些警告。这些可能会在将来产生问题吗?
请参阅以下警告:

首先
此版本中使用了已弃用的 Gradle 功能,使其与 Gradle 6.0 不兼容。
使用“--warning-mode all”显示各个弃用警告。
https://docs.gradle.org/5.1.1/userguide/command_line_interface.html#sec:command_line_warnings

第二
在 1 秒内构建成功
14 个可操作的任务:3 个已执行,11 个是最新的
警告:API 'variant.getMergeResources()' 已过时,已替换为 'variant.getMergeResourcesProvider()'。 它将在 2019 年底被删除。
如需更多信息,请参阅https://d.android.com/r/tools/task-configuration-avoidance
要确定调用 variant.getMergeResources() 的内容,请在命令行上使用 -Pandroid.debug.obsoleteApi=true 以显示更多信息。
受影响的模块:app

【问题讨论】:

  • @DarShan 将我的谷歌服务从 4.3.0 降级到 4.2.0 。我没有收到第二次警告。但我仍然必须面对第一个警告。 FIRST 的解决方案是什么。

标签: android android-studio gradle android-gradle-plugin androidx


【解决方案1】:

第一

此版本中使用了已弃用的 Gradle 功能,使其 与 Gradle 6.0 不兼容。

See this reply

第二

警告:API 'variant.getMergeResources()' 已过时且已被 替换为“variant.getMergeResourcesProvider()”。这将是 于 2019 年底移除。

出现此警告消息是因为您在应用中添加的某些库正在使用过时的代码。您可以忽略此消息,它不会产生任何问题。

要确定是哪个库导致此问题,请执行以下操作,

您可以在 gradle.properties 文件中包含android.debug.obsoleteApi=true

重建您的项目,您将能够在 logcat 中查看有关此问题的详细信息。

【讨论】:

  • 对于第一个问题,如果我在终端中运行命令 gradlew --warning-mode=all ,我会得到与第二个问题中显示的相同的警告。我想 FIRST 和 SECOND 问题都联系在一起,但我不知道如何删除此警告。
  • 在项目级 gradle 中将 google-services 从 4.3.0 降级到 4.2.0 后未收到第二次警告。
猜你喜欢
  • 1970-01-01
  • 2017-01-28
  • 2020-01-04
  • 2014-07-29
  • 2016-01-25
  • 1970-01-01
  • 1970-01-01
  • 2020-03-03
  • 1970-01-01
相关资源
最近更新 更多