【发布时间】:2013-06-01 07:13:51
【问题描述】:
我在 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.
【问题讨论】:
-
至少对于 Ant,这些是警告消息,而不是构建失败的指示。此外,根据您的跟踪,您的构建成功了。
-
正确,在 Eclipse 上使用 Ant 构建就像一个魅力,在 Android studio/gradle 中尝试似乎是个问题。
-
既然您的跟踪表明它编译成功,那么您有什么证据表明存在问题?
-
请检查添加的详细信息。
-
您似乎在提取两个(或更多)独立的 Android 支持 JAR 副本。由于 ActionBarSherlock 已经有一个,您应该能够摆脱您自己的该 JAR 副本。话虽如此,我的建议是针对 Ant 和 Eclipse,我不知道 Android Studio 是否还有其他首选解决方案。
标签: android intellij-idea gradle deprecated android-studio