Android Studio在使用过时API时无法编译

14

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

问题:它不喜欢我使用过时的API。(来自gradlew compileDebug --stacktrace完整堆栈跟踪信息请查看此处)

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

背景:

  • 我正在使用一个PreferenceActivity,它使用了已弃用的方法onPreferenceTreeClickaddPreferencesFromResource(int)
  • 我还使用了ABS和ViewPager库,它们在代码中似乎也使用了已弃用的方法。

问题:

  • 能否编辑运行配置以使其可以成功编译尽管使用了已弃用的API?
  • 有什么可以更改/编辑/修改以允许成功编译?

考虑到我计划支持早于ICS版本的设备,使用已弃用的API不应该是一个问题。

编辑

所以,命令提示符编译器指示构建成功,问题是从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;

这里有更多信息:在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. 

1
至少在使用Ant时,那些只是警告信息,而不是构建失败的指示。此外,根据您拥有的跟踪信息,您的构建已成功。 - CommonsWare
没错,在Eclipse上使用Ant构建非常顺利,但在Android Studio/Gradle中尝试却似乎有问题。 - daniel_c05
1
既然你的跟踪信息显示编译成功,那么你有什么证据表明存在问题? - CommonsWare
请检查添加的详细信息。 - daniel_c05
4
您似乎在引入两个(或更多)不同的Android支持JAR包。由于ActionBarSherlock已经有一个,因此您可以摆脱自己的这个JAR包副本。话虽如此,我的建议是面向Ant和Eclipse的,并且我不知道Android Studio是否有另一种首选解决方法。 - CommonsWare
@CommonsWare 我也遇到了这个错误,但我无法解决它。我已经花了两天时间了。你们能否帮忙查看一下我的问题?http://stackoverflow.com/questions/19956564/gradle-execution-failed-for-task-myappdexdebug-could-not-call-incrementa - alicanbatur
1个回答

0

您只需将此代码添加到build.gradle文件中的android部分即可。

lintOptions {
    abortOnError false
}

如果你使用这个,Gradle 就不会再显示错误了,但这并不是非常有用! - stef
1
@stef 当 abortOnError 设置为 false 时,Gradle 仍会显示错误,但不会因此中止构建。 - Silverstorm
是的,我应该说“当错误发生时你不会收到通知”,我的错。 - stef

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接