2015-02-05 30 views
0

我得到的资源未发现异常资源异常SwipeRefreshLayout ProgressBackground

android.content.res.Resources$NotFoundException: Resource ID #0xffff0000 

执行此操作时:

swipeLayout.setProgressBackgroundColor(getResources().getColor(R.color.red)); 

虽然我有这个在colors.xml:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
     <color name="red">#FF0000</color> 
</resources> 

我从我的项目中使用R(而不是android.R)

摇篮:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.2" 

    defaultConfig { 
     applicationId "xxx" 
     minSdkVersion 11 
     targetSdkVersion 18 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 
} 

dependencies { 
    compile 'com.android.support:appcompat-v7:21.0.3' 
    compile 'com.google.code.gson:gson:2.3' 
    compile 'com.mcxiaoke.volley:library:1.0.6' 
    compile 'com.android.support:support-v4:21.0.3' 
} 

任何想法解决这一问题?

+0

检查是否导入了正确的R,如果是的话尝试清理项目。 – domi 2015-02-05 22:34:42

回答

1

setProgressBackgroundColor方法的参数应该是颜色资源ID,而不是表示颜色的整数。像这样使用它:

swipeLayout.setProgressBackgroundColor(R.color.red); 
+0

Android Studio说,采用整数形式的颜色的方法应该传递RGB三元组,而不是实际的颜色资源ID。您必须调用getResources.getColor(资源)。但现在应用程序正在用swipeRefresh红色背景运行。 – David 2015-02-05 22:40:23

+0

我想这是Google支持库上的一个错误。为整数参数提供“类型检查”的注释最近被引入,并且似乎该方法参数被错误地注释。如果您尚未完成此操作,请尝试将支持库更新至最新版本(21.0.3) – LukaCiko 2015-02-05 22:46:41

+0

问题仍然存在请检查我的gradle。 – David 2015-02-05 22:57:32