2013-01-15 48 views
0

我收到来自谷歌的这个错误日志,我不知道是什么原因造成的。该资源位于文件夹中,它表示不是。我从来没有遇到过这个错误。这里的错误:找不到背景资源

android.content.res.Resources$NotFoundException: File res/drawable-mdpi/notebook_ul.jpg from drawable resource ID #0x7f020090 
at android.content.res.Resources.loadDrawable(Resources.java:1714) 
at android.content.res.Resources.getDrawable(Resources.java:581) 
at android.view.View.setBackgroundResource(View.java:7391) 
at com.bfreq.dice.fragments.SettingsFrag.onCreateView(SettingsFrag.java:76) 
.............................. 
Caused by: java.lang.NullPointerException......... 

下面是我调用的资源在我的片段

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     View v = inflater.inflate(R.layout.settings, container, false); 

     // Initializing Background 
     rLayout = (RelativeLayout) v.findViewById(R.id.relativeLayout_Settings); 
     switch (background) { 
     case 0: 
      rLayout.setBackgroundResource(R.drawable.clay_ul); 
      break; 
     case 1: 
      rLayout.setBackgroundResource(R.drawable.parchment_ul); 
      break; 
     case 2: 
      rLayout.setBackgroundResource(R.drawable.brownpaper_ul); 
      break; 
     case 3: 
      rLayout.setBackgroundResource(R.drawable.notebook_ul); 
      break; 
     case 4: 
      rLayout.setBackgroundColor(Color.WHITE); 
      break; 
     } 
      ........ 
      return v; 
     } 

我也从一个方法调用它。现在我知道我不会直接从一个片段谈到另一个片段,但它一直在毫无问题地工作,没有时间重写所有内容。

public void setBackground() { 

    switch (background) { 
    case 0: 
     SettingsFrag.rLayout.setBackgroundResource(R.drawable.clay_ul); 
     DiceFrag.rLayout.setBackgroundResource(R.drawable.clay_uc); 
     DiceLogFrag.rLayout.setBackgroundResource(R.drawable.clay_ur); 
     break; 
    case 1: 
     SettingsFrag.rLayout.setBackgroundResource(R.drawable.parchment_ul); 
     DiceFrag.rLayout.setBackgroundResource(R.drawable.parchment_uc); 
     DiceLogFrag.rLayout.setBackgroundResource(R.drawable.parchment_ur); 
     break; 
    case 2: 
     SettingsFrag.rLayout.setBackgroundResource(R.drawable.brownpaper_ul); 
     DiceFrag.rLayout.setBackgroundResource(R.drawable.brownpaper_uc); 
     DiceLogFrag.rLayout.setBackgroundResource(R.drawable.brownpaper_ur); 
     break; 
    case 3: 
     SettingsFrag.rLayout.setBackgroundResource(R.drawable.notebook_ul); 
     DiceFrag.rLayout.setBackgroundResource(R.drawable.notebook_uc); 
     DiceLogFrag.rLayout.setBackgroundResource(R.drawable.notebook_ur); 
     break; 
    case 4: 
     SettingsFrag.rLayout.setBackgroundColor(Color.WHITE); 
     DiceFrag.rLayout.setBackgroundColor(Color.WHITE); 
     DiceLogFrag.rLayout.setBackgroundColor(Color.WHITE); 
     break; 
    } 
} 

我确定每当我调用该方法时它不会返回一个空指针。任何想法都会很棒。如果有人想看,我也可以放更多的代码。谢谢!

回答

2

我得到这个,当我创建了一个特定的DPI只有一个资产(即华电国际,xhdpi ...),请确保您的绘制是提供drawable/drawable-hdpi/drawable-mdpi/等机会是你创建了一个可绘制在一个是drawable目录,但不是当前模拟器/设备从中提取的目录。

+0

是的,我只有他们在drawable-mdpi /但奇怪的是这是它说它无法找到它的文件夹...但也许这是因为该设备不使用该文件夹。我将为所有文件夹生成图像,看看是否照顾它。 – MinceMan