我刚刚将Android Studio升级到了最新版本:
Android Studio 3.2.1 Build#AI-181.5540.7.32.5056338,建于2018年10月9日 JRE:1.8.0_152-release-1136-b06 amd64 JVM:JetBrains s.r.o的OpenJDK 64位服务器VM Windows 10 10.0
,这也意味着将构建工具更新为28.0.3。从那以后,我无法编译确定的项目。
我陷入了错误
错误:找不到符号变量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,也许有些不兼容。
我还尝试将BackBackgroundResource设置为视图并从那里获取它,如下所示: Google documentation
结果相同但有错误。
到目前为止,我发现的唯一解决方案是删除涉及AnimationDrawable资源获取器的代码部分,这样我就可以在编译应用程序时失去动画功能:-)
有任何提示吗?
谢谢
,并且根据文档位于res / drawable中
答案 0 :(得分:0)
尽管我不知道确切的原因,但我找到了针对这种情况的解决方法。
我试图在新环境中创建一个新应用,只是为了使用失败项目中的确切代码和文件来测试AnimationDrawable功能。 这很好。 我注意到资源获得了一个正的资源ID整数,而我失败的应用程序具有了一个负的整数ID。我在失败的应用程序中都找不到R.java.class中的内容。
当我用现有的jpg资源替换可绘制XML进行测试时,编译完成但没有错误,并且资源获得了正ID。这提示我
将此xml拖放到drawable res的所有密度文件夹(drawable-hdpi等文件夹)
这有助于项目的编译,编译器突然发现了我的动画可绘制xml,并为其分配了正整数ID,也可以在R.java中找到它。
将多密度/较旧的Android版本支持的项目移植到新环境时,似乎存在一些逻辑错误。甚至“ Clean Project”也无法像过去那样解决问题,并且较旧的编译方法在文件夹中残留的某些内容导致可绘制资源无法恢复
非常奇怪,您不必将xml添加到一个干净的新项目中的所有密度文件夹中。
因此,您要么在最新的Studio中构建了一个新项目,要么在该项目已经很健壮的情况下(例如我的案例),您花费了数小时进行测试失败的实验,从而失去了刚变白的头发。 >
因此,如果您不确定是否应该将最新更新下载到您的工作室,请在测试PC上进行下载,然后再度不眠之夜。