android无法解析PNG文件

时间:2010-12-09 23:39:17

标签: android android-emulator

我已经开发了一个在模拟器上运行完美的应用程序但是当我尝试在手机上运行它时,应用程序错误说明java.io.FileNotException:res / drawable / divider_horizo​​ntal_dark.9.png

我认为该应用程序缺少此文件(可能是android系统文件)所以我在网络上的其他地方找到了这个文件并将其放在drawable下但是徒劳无功。该应用程序仍然出现与以前相同的错误。

这里有什么想法吗?

xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content" android:gravity="left|center"
    android:layout_width="wrap_content" android:paddingBottom="5px"
    android:paddingTop="5px" android:paddingLeft="5px" >
    <ImageView android:id="@+id/linkImage" android:layout_width="wrap_content"
        android:layout_height="fill_parent" android:layout_marginRight="6dip"
        android:src="@drawable/icon" />
    <LinearLayout android:orientation="vertical"
        android:layout_width="0dip" android:layout_weight="1"
        android:layout_height="fill_parent">
        <TextView android:id="@+id/firstLineView"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:gravity="center" android:textColor="#FFFF00" android:text="first line title"></TextView>

        <TextView android:id="@+id/secondLineView"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:text="second line title" android:layout_marginLeft="10px" android:gravity="center"
            android:textColor="#0099CC"></TextView>

    </LinearLayout>
</LinearLayout>

和加载时应用崩溃的代码部分..你可以看到我没有使用文件divider_horizo​​ntal_dark.9.png

public View getView(int position, View convertView, ViewGroup parent){
            ViewHolder holder;
            if(convertView == null){
                convertView = mInflater.inflate(R.layout.listview,null);
                holder = new ViewHolder();
                holder.firstLine = (TextView) convertView.findViewById(R.id.firstLineView);
                holder.secondLine = (TextView) convertView.findViewById(R.id.secondLineView);
                holder.imageView = (ImageView) convertView.findViewById(R.id.linkImage);
                //holder.checkbox = (CheckBox) convertView.findViewById(R.id.star);
                holder.firstLine.setFocusable(false);
                holder.secondLine.setFocusable(false);
                holder.imageView.setFocusable(false);
                //holder.checkbox.setFocusable(false);
                convertView.setTag(holder);
            }else{
                holder = (ViewHolder) convertView.getTag();
            }
.....
似乎他们已经解决了这个问题 http://code.google.com/p/transdroid/issues/detail?id=14

但我不知道怎么办

1 个答案:

答案 0 :(得分:0)

您需要为资源使用id,而不是尝试通过提供路径来打开文件(在源代码中)。有很多Android文档可以解释如何做到这一点......

http://developer.android.com/guide/topics/resources/providing-resources.html

http://developer.android.com/guide/topics/resources/accessing-resources.html