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
错误。
答案 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)
现在一切正常。
com.android.tools.build:gradle:2.3.0-beta3
重新启动,无效,重建; 所有内容最终都会在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)
我在接下来的步骤中解决了这个问题