我有一个奇怪的行为,在我的三星Galaxy上,我得到了这个错误,它找不到类R$styleable。当我在我的Nexus5或Nexus4上运行相同的代码时,我没有得到问题,一切都运行得很好。
我得到这个异常的代码行是在我的自定义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这是位于values/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),但在现货三星安卓操作系统上,它也崩溃了。Nexus 5是6.0.1,Nexus 4是棒棒糖版本。sdk工具和编译版本如下:
compileSdkVersion 23
buildToolsVersion '23.0.2'
minSdkVersion 16
targetSdkVersion 23我试图清理项目并检查资源文件,似乎一切正常,但我真的不知道如何处理这个问题。有谁知道怎么解决这个问题吗?
谢谢您抽时间见我!
发布于 2016-01-11 19:07:56
如果您在旧版本上运行应用程序,则必须更改: compile-sdk以降低sdk。这就是为什么这款应用程序可以在一些较新的手机上运行,而在你提到的其他一些手机上却不能。check out this link
Styeleable类已从较新的SDK中删除,因为属性在SDK版本之间不断变化。要使用可设置样式类,必须使用较早版本的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$styleablehttps://stackoverflow.com/questions/34719702
复制相似问题