- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚将 Android Studio 升级到最新版本:
Android Studio 3.2.1 Build #AI-181.5540.7.32.5056338, built on October 9, 2018 JRE: 1.8.0_152-release-1136-b06 amd64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o Windows 10 10.0
这也意味着将构建工具更新到 28.0.3。从那时起,我就无法编译我的项目了。
我遇到了一个错误
error: cannot find symbol variable radio_animator
此错误指向我的 java 文件,我在其中尝试从资源 xml 文件获取 AnimationDrawable:
ContextCompat.getDrawable(this, R.drawable.radio_animator)
升级前一切正常...
现在同一个资源好像看不到资源了。我没有更改代码中的单个字母...,我没有移动或替换 xml 资源文件。
当我在编辑器中单击 R.drawable.radio_animator 时,它会打开动画列表 xml,因此它对编辑器可见...
我检查了有关 AnimationDrawable 的 Google 文档,我坚持提供的示例,没有变化。
不确定我做错了什么。最新的 Android Studio 升级和最新的构建工具是否有任何(尚未)记录在案的变化?
我的应用程序尚未针对 Android 7.0、API 24,可能存在一些不兼容性。
我还尝试将 setBackgroundResource 设置为 View 并从那里获取它,如下所示: Google documentation
同样的结果,但有错误。
到目前为止,我找到的唯一解决方案是删除引用 AnimationDrawable 资源 getter 的代码部分,结果我可以在丢失动画功能的情况下编译应用程序:-)
有什么提示吗?
谢谢
根据文档,它位于 res/drawable 中
最佳答案
尽管我无法找出确切原因,但我找到了针对这种情况的变通解决方案。
我尝试在新环境中创建一个新应用,只是为了使用失败项目中的确切代码和文件来测试 AnimationDrawable 功能。这很好用。我注意到该资源获得了一个正资源 ID 整数,而我失败的应用程序获得了一个负整数 ID。我在失败的应用程序中都找不到它在 R.java.class 中。
当我用现有的 jpg 资源替换可绘制的 XML 以进行测试时,编译完成且没有错误,并且资源获得了肯定的 ID。这暗示我
将此 xml 拖放到可绘制资源的所有密度文件夹(drawable-hdpi 等文件夹)
这有助于编译项目,我的动画可绘制 xml 突然被编译器发现并为其分配了一个正整数 ID,并且也可以在 R.java 中找到。
当您将多密度/旧 Android 版本支持的项目移植到新环境时,似乎存在一些逻辑错误。即使是“Clean Project”也不能像过去那样解决问题,而且旧的编译方法留下的文件夹中有一些东西导致可绘制资源无法恢复
奇怪的是,您不必将 xml 添加到干净的新项目中的所有密度文件夹中。
因此,您要么在最新的 Studio 中构建一个从头开始的新项目,要么如果该项目已经很健壮(就像我的情况一样),您将花费数小时进行测试失败-成功实验,让您的新白发掉落...
因此,如果您不确定是否应该已经将最新更新下载到您的工作室,请在您睡不着觉之前在测试电脑上进行下载。
关于Android 构建失败 : error: cannot find symbol variable radio_animator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52932913/
我刚刚将 Android Studio 升级到最新版本: Android Studio 3.2.1 Build #AI-181.5540.7.32.5056338, built on October
我是一名优秀的程序员,十分优秀!