2016-04-18 103 views
0

什么我已经有:ResourcesNotFoundException的棒棒糖预设备

这是我的ImageView:

<ImageView 
     android:id="@+id/play_pause" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/timer_button_layoutHeight" 
     app:srcCompat="@drawable/play_button_vector" 
     android:onClick="startOrPauseTimer"/> 

我使用的是Android插件版本2.0:

classpath 'com.android.tools.build:gradle:2.0.0' 

我在应用程序级别的build.gradle中的android的defaultConfig中启用了矢量可绘制支持库标志:

vectorDrawables.useSupportLibrary = true 

我还增加了矢量绘制支持库的依赖:

compile 'com.android.support:support-vector-drawable:23.2.1' 

在活动类的,我基于点击听众动态变化的矢量绘制:

playPauseButton = (ImageView) findViewById(R.id.play_pause); 
playPauseButton.setImageResource(R.drawable.play_button_vector); 

问题:

我收到资源找不到预前的异常ipop设备。该代码适用于棒棒糖向前。

android.content.res.Resources $ NotFoundException:文件 RES /从绘制资源ID#0x7f020119

绘制/ play_button_vector.xml我可以在图像应该是地方什么也看不见。但是,如果我点击该图像所在的位置,它会被clickListener捕获。我究竟做错了什么?

+0

您正在转换任何'SVG'为矢量? –

+0

是的,我收到了SVG文件,然后我将它作为矢量绘制导入。 –

+0

请尝试使用默认向量。从SVG做起也给我错误。对于默认向量,它将在没有您尝试的所有上述内容的情况下运行 –

回答

1

试试这个,而不是ContextCompat.getDrawable()。

Drawable d = AppCompatDrawableManager.get().getDrawable(context, resID); 
0

我尝试了上面提到的所有解决方案。没有为我工作。对我来说唯一的工作很简单,就是将所有的支持库更新到最新版本,因为这个bug已经修复了。所以我简单做了下面的事情,建立gradle更新的SDK和支持到25.

android { 
    compileSdkVersion 25 
    buildToolsVersion "25" 
    defaultConfig { 
     targetSdkVersion 25 
    } 

} 
In dependencies 

    compile 'com.android.support:appcompat-v7:25.1.0' 
    compile 'com.android.support:design:25.1.0' 
    compile 'com.android.support:recyclerview-v7:25.1.0' 
相关问题