提问人:Tobias Reich 提问时间:1/15/2019 更新时间:1/13/2020 访问量:11882
Android Gradle - 在哪里添加“android.debug.obsoleteApi=true”
Android Gradle - Where to add "android.debug.obsoleteApi=true"
问:
我更新到了 AndroidStudio 3.3,它现在给出了有关已弃用库的警告:
警告:API 'variant.getExternalNativeBuildTasks()' 已过时且 已替换为“variant.getExternalNativeBuildProviders()”。它 将于 2019 年底删除。有关详细信息,请参阅 https://d.android.com/r/tools/task-configuration-avoidance。自 确定调用 variant.getExternalNativeBuildTasks() 的内容,使用 -Pandroid.debug.obsoleteApi=true 以显示堆栈跟踪。受影响的模块:app
他们的网站上提供了更多信息:
但我并不完全理解。他们说:
要查看其他信息,您需要在 项目的 gradle.properties 文件:
android.debug.obsoleteApi=true
所以我拿了标有 (Project: [my project]) 的 build.gradle
该文档如下所示:
buildscript {
ext.kotlin_version = '1.3.10'
repositories {
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
classpath 'com.google.gms:google-services:4.0.1'
classpath 'com.github.triplet.gradle:play-publisher:1.1.5'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
jcenter()
maven {
url "https://jitpack.io"
}
mavenCentral()
}
}
project.ext.preDexLibs = !project.hasProperty('disablePreDex')
subprojects {
project.plugins.whenPluginAdded { plugin ->
if ("com.android.build.gradle.AppPlugin" == plugin.class.name) {
project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
} else if ("com.android.build.gradle.LibraryPlugin" == plugin.class.name) {
project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
}
}
}
repositories {
mavenCentral()
}
但是,我不明白,我现在应该在哪里添加那行。无论我把它放在哪里,我总是会遇到错误。
例如,当直接写在第一行时:
无法获取根项目 [我的项目] 的未知属性“android” 类型为 org.gradle.api.Project。
那么这应该在哪里添加呢?还是我混合了 gradle 文件的“项目”和“应用”的定义?
答:
您需要将其放在项目级别的文件中,该文件位于应用程序文件夹之外,而不是您当前尝试执行的文件中。gradle.properties
build.gradle
来自 android 开发者文档
使用过时的 API 时提供更好的调试信息:当插件检测到您正在使用不再受支持的 API 时,它现在可以提供更详细的信息来帮助您确定该 API 的使用位置。要查看其他信息,您需要在项目的 gradle.properties 文件中包含以下内容:
android.debug.obsoleteApi=true 您还可以通过从命令行传递 -Pandroid.debug.obsoleteApi=true
来启用该标志。
您可以查看此链接。
评论
如错误消息中所述,您应该将其添加到文件中,而不是添加到任何文件中gradle.properties
build.gradle
评论
最简单的方法是在 android 项目根目录的终端中执行此操作。
运行以下命令:
./gradlew -Pandroid.debug.obsoleteApi=true
评论