我有这种奇怪的行为,在我的三星Galaxy上我得到了这个错误,它无法找到班级R$styleable
。当我在Nexus 5或Nexus 4上运行相同的代码时,我没有遇到问题,一切正常。
我收到此异常的行位于我的自定义Spinner
实施ImageSpinner
中:
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ImageSpinner);
这是我得到的例外:
java.lang.RuntimeException: Unable to start activity ComponentInfo{my.package.name/my.package.name.NavigationSetupActivity}: android.view.InflateException: Binary XML file line #39: Error inflating class my.package.name.views.ImageSpinner
Caused by: java.lang.NoClassDefFoundError: my.package.name.R$styleable
这是位于值/ attrs.xml中的可设置样式文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="ImageSpinner">
<attr name="arrowTint" format="color" />
<attr name="hideArrow" format="boolean" />
</declare-styleable>
</resources>
三星Galaxy手机的操作系统版本是4.2.2(CyanogenMod),但也在三星Android操作系统上它崩溃了。 Nexus 5是6.0.1,Nexus 4是棒棒糖版本。 sdk工具和编译版本如下:
compileSdkVersion 23
buildToolsVersion '23.0.2'
minSdkVersion 16
targetSdkVersion 23
我试图清理项目并检查资源文件,一切似乎都没问题,但我真的没有更多想法如何解决这个问题。有没有人知道如何解决这个问题?
感谢您的时间!
答案 0 :(得分:1)
如果您在旧版本上运行该应用,则必须更改: compile-sdk降低sdks。这就是为什么这个应用程序适用于一些较新的手机,而它不适用于你提到的其他手机。 check out this link
Styeleable类已从较新的SDK中删除,因为SDK版本之间的属性不断变化。 这就是为什么你为了使用Styleable类而得到错误的原因,你必须使用旧版本的SDK
java.lang.RuntimeException: Unable to start activity ComponentInfo{my.package.name/my.package.name.NavigationSetupActivity}: android.view.InflateException: Binary XML file line #39: Error inflating class my.package.name.views.ImageSpinner
Caused by: java.lang.NoClassDefFoundError: my.package.name.R$styleable