首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在特定手机上找不到R$styleable类

在特定手机上找不到R$styleable类
EN

Stack Overflow用户
提问于 2016-01-11 18:53:47
回答 1查看 363关注 0票数 0

我有一个奇怪的行为,在我的三星Galaxy上,我得到了这个错误,它找不到类R$styleable。当我在我的Nexus5或Nexus4上运行相同的代码时,我没有得到问题,一切都运行得很好。

我得到这个异常的代码行是在我的自定义Spinner实现ImageSpinner

代码语言:javascript
复制
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ImageSpinner);

这是我得到的异常:

代码语言:javascript
复制
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中的可设置样式的文件:

代码语言:javascript
复制
<?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工具和编译版本如下:

代码语言:javascript
复制
compileSdkVersion 23
buildToolsVersion '23.0.2'
minSdkVersion 16
targetSdkVersion 23

我试图清理项目并检查资源文件,似乎一切正常,但我真的不知道如何处理这个问题。有谁知道怎么解决这个问题吗?

谢谢您抽时间见我!

EN

回答 1

Stack Overflow用户

发布于 2016-01-11 19:07:56

如果您在旧版本上运行应用程序,则必须更改: compile-sdk以降低sdk。这就是为什么这款应用程序可以在一些较新的手机上运行,而在你提到的其他一些手机上却不能。check out this link

Styeleable类已从较新的SDK中删除,因为属性在SDK版本之间不断变化。要使用可设置样式类,必须使用较早版本的SDK,这就是出现错误的原因

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34719702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档