使用已弃用的 API 时,Android Studio 无法编译

标签 android intellij-idea gradle deprecated android-studio

我在 Android Studio 上编译和运行我的应用程序时遇到问题。

问题:它不喜欢我使用已弃用的 API。 (来自 gradlew compileDebug --stacktraceFull stacktrace here

Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

背景:

  • 我正在使用 PreferenceActivity,它使用 onPreferenceTreeClickaddPreferencesFromResource(int),这两种方法均已弃用。
  • 我正在使用 ABS 和 ViewPager 库,它们似乎也在其代码中使用了已弃用的方法。

问题:

  • 是否可以将运行配置编辑到可以成功编译的扩展尽管已弃用的 API?
  • 可以更改/编辑/修改哪些内容以允许构建成功编译?

考虑到我计划支持 ICS 之前的设备并且使用已弃用的 APIS 应该不会有问题。

编辑

因此,命令提示符下的编译器指示构建成功,问题是直接从 Android Studio 运行,构建过程失败:

FAILURE: Build failed with an exception.

问题似乎是我不知道如何解决,流行的行是:

UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: 

这发生在三个不同的地方:

Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoStubImpl;
Landroid/support/v4/app/ActivityCompatHoneycomb;
Landroid/support/v4/app/LoaderManager;

这里有更多信息:Full Compiler output in Android Studio

* What went wrong:
Execution failed for task ':LaPrensa:dexDebug'.
> Running C:\Users\SkullKandy\AppData\Local\Android\android-studio\sdk\build-tools\android-4.2.2\dx.bat failed. 

最佳答案

您只需将此代码添加到 build.gradle(在 android 部分)

lintOptions {
    abortOnError false
}

关于使用已弃用的 API 时,Android Studio 无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16942436/

相关文章:

Android ListView 不会(重新)填充 "back"

java - Android - Ipay88 出现错误访问被拒绝查找属性 "ro.serialno"

debugging - 在 IntelliJ Idea 中调试时避免 Groovy/Grails 内部机制

java - Gradle 一站式构建

gradle - Jacoco-不排除文件

android - 编程新手 - 在指定位置找不到 Flutter SDK

android - 如何通过反射使用BluetoothHeadset类

intellij-idea - 如何防止IntelliJ忘记计算机崩溃时的设置?

java - 使用 IntelliJ IDEA 运行 Maven 项目

java - 当我尝试git push heroku时出现错误