我在 Android Studio 上编译和运行我的应用程序时遇到问题。
问题:它不喜欢我使用已弃用的 API。 (来自 gradlew compileDebug --stacktrace
。Full stacktrace here
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
背景:
- 我正在使用 PreferenceActivity,它使用
onPreferenceTreeClick
和addPreferencesFromResource(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/