Android Studio 2.3 Beta 1 +支持25.1.0 =预览已损坏

时间:2016-12-14 02:58:28

标签: android android-layout android-studio android-support-library android-appcompat

Android Studio 2.3 Canary 3.支持库25.1.0。

布局预览完全被打破。任何包含支持相关视图的内容似乎在预览期间都会中断。

在所有情况下,这都是堆栈的开头:

Exception Details java.lang.NoSuchFieldError: ViewBackgroundHelper   
at android.support.v7.widget.AppCompatBackgroundHelper.loadFromAttributes(AppCompatBackgroundHelper.java:46)   
at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:63)   
at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:56)
....

..等等。

无论布局是什么,我现在都会遇到这个血腥的ViewBackgroundHelper相关问题。似乎不管是什么类型的布局或者其中有什么视图......看似通过AppCompat的任何内容都会在预览中遇到此错误。

之前从未见过这个。以前有Android Studio 2.3 Canary 2 +支持库25.0.1。

似乎只是不可能永远升级Android Studio或其支持库而不花费数小时来处理这类内容,嘿?

感谢任何提示,谢谢 -

更新

看起来我不是唯一一个。发现此处记录的错误,已被许多人主演:

https://code.google.com/p/android/issues/detail?id=230183

更新2

AS 2.3 Beta仍然存在问题1.仍无法看到我的布局。无处不在java.lang.NoSuchFieldError: ViewBackgroundHelper错误。

6 个答案:

答案 0 :(得分:6)

根据问题跟踪器,截至2017年1月10日:

https://code.google.com/p/android/issues/detail?id=230183

  

对于那些使用2.3.0-beta1 Gradle插件的人,请你   通过添加

禁用构建缓存      

android.enableBuildCache=false

     

到您的gradle.properties文件,告诉我们是否可以解决问题   为了你。请将行添加到gradle.properties之后   重建项目。

     

感谢。

已经证明可以解决某些用户的问题。

答案 1 :(得分:5)

现在一切正常。

  1. 我今天升级到最新的Android Studio:2.3 Beta 3
  2. 我被提示更新到最新的com.android.tools.build:gradle:2.3.0-beta3
  3. 重新启动,无效,重建; 所有内容最终都会在6周内第一次在预览窗格中完美呈现

    看起来他们已经修好了。 最后

答案 2 :(得分:2)

我在跟踪器上提交了该问题。其他参与者发现删除一些其他非android库依赖项会导致问题消失。基于此我找到了一个解决方案(转发自问题主题):

进一步调查后的其他信息:

Android Studio 2.2.3
Build#AI-145.3537739,建于2016年12月2日
JRE:1.8.0_76-release-b03 amd64
JVM:JetBrains s.r.o的OpenJDK 64位服务器VM

支持libs:25.1.0
构建工具:25.0.2

在上述工作室版本(2.2.3 Stable)上能够重现之后,我开始根据此线程中其他人提供的信息删除其他库依赖项。删除书法库(https://github.com/chrisjenx/Calligraphy)和相关代码后,布局预览再次开始正常工作。

有趣的是,我能够重新添加书法库,并且布局预览继续工作。也许这指向android gradle插件的某种缓存问题?

对于遇到此问题的其他人,我建议如下:
1.找出导致问题的库 2.删除库依赖关系和相关代码
3.彻底清洁并建造 4.验证布局预览是否有效 5.重新添加库依赖项
6.彻底清洁并建造 7.验证布局预览是否有效

注意:我怀疑书法引起了问题,因为它依赖于名为&#34; fontPath&#34;的自定义xml属性,以及一些上下文操作。如果您有任何库在窗口中进行View操作,我建议先删除它们。

答案 3 :(得分:1)

将AppTheme风格更改为:

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
</style>

答案 4 :(得分:0)

我有一个解决方案,问题不是Android Studio的版本。

问题是Gradle版本回到稳定版本2.2.3,经过几次测试后它对我有用。它是gradle测试版中的Bug,已经报告谷歌。

答案 5 :(得分:0)

我在接下来的步骤中解决了这个问题

  • 删除&lt; project&gt; /&lt; module&gt; / build / build / intermediates / explosion-aar
  • 重建项目
  • 检查在explosion-aar
  • 中是否只有一个版本支持库