我想在我的 Android 应用程序项目中包含一个资源 xml 文件,以保存一些旨在具有特定用途的字符串值categories_names.xml,将其复制到res/values文件夹中,但是一旦我尝试运行应用程序,它就会退出并抛出InflateException. 奇怪的是,甚至无法从启动器活动中访问此资源文件。这怎么可能?我在下面报告回溯。
07-13 13:24:21.842: W/dalvikvm(27215): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
07-13 13:24:21.872: E/AndroidRuntime(27215): FATAL EXCEPTION: main
07-13 13:24:21.872: E/AndroidRuntime(27215): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mikidep.amount/com.mikidep.amount.MainActivity}: android.view.InflateException: Binary XML file line #53: Error inflating class android.widget.Button
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.app.ActivityThread.access$600(ActivityThread.java:141)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.os.Handler.dispatchMessage(Handler.java:99)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.os.Looper.loop(Looper.java:137)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.app.ActivityThread.main(ActivityThread.java:5041)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at java.lang.reflect.Method.invokeNative(Native Method)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at java.lang.reflect.Method.invoke(Method.java:511)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at dalvik.system.NativeStart.main(Native Method)
07-13 13:24:21.872: E/AndroidRuntime(27215): Caused by: android.view.InflateException: Binary XML file line #53: Error inflating class android.widget.Button
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.view.LayoutInflater.createView(LayoutInflater.java:613)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at com.mikidep.amount.NumberFragment.onCreateView(NumberFragment.java:36)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.app.Fragment.performCreateView(Fragment.java:1695)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:861)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1137)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.app.Activity.onCreateView(Activity.java:4717)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.app.Activity.setContentView(Activity.java:1881)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at com.mikidep.amount.MainActivity.onCreate(MainActivity.java:29)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.app.Activity.performCreate(Activity.java:5104)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
07-13 13:24:21.872: E/AndroidRuntime(27215):    ... 11 more
07-13 13:24:21.872: E/AndroidRuntime(27215): Caused by: java.lang.reflect.InvocationTargetException
07-13 13:24:21.872: E/AndroidRuntime(27215):    at java.lang.reflect.Constructor.constructNative(Native Method)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.view.LayoutInflater.createView(LayoutInflater.java:587)
07-13 13:24:21.872: E/AndroidRuntime(27215):    ... 34 more
07-13 13:24:21.872: E/AndroidRuntime(27215): Caused by: java.lang.ArrayIndexOutOfBoundsException: length=54; index=68
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.content.res.StringBlock.get(StringBlock.java:64)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.content.res.XmlBlock$Parser.getPooledString(XmlBlock.java:458)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.content.res.TypedArray.loadStringValueAt(TypedArray.java:720)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.content.res.TypedArray.getString(TypedArray.java:124)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.widget.TextView.<init>(TextView.java:928)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.widget.Button.<init>(Button.java:107)
07-13 13:24:21.872: E/AndroidRuntime(27215):    at android.widget.Button.<init>(Button.java:103)
07-13 13:24:21.872: E/AndroidRuntime(27215):    ... 37 more
编辑:这是提到的布局。我还必须说我已经尝试删除/替换似乎导致问题的元素,但它只会应用于另一个元素。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#F2F2F2"
    android:orientation="vertical"
    tools:context=".NumberActivity" >
    <TextView
        android:id="@+id/displayTextView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:fontFamily="Lato"
        android:gravity="center"
        android:text="0"
        android:textColor="#F07B7B"
        android:textSize="70dp"
        android:typeface="normal"
        tools:ignore="SpUsage" />
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/clear_next_background" >
        <ImageView
            android:id="@+id/clearCrossImageView"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_marginLeft="5dp"
            android:adjustViewBounds="true"
            android:contentDescription="@string/clear_number"
            android:paddingRight="0dp"
            android:src="@drawable/clear_cross_png" />
        <ImageView
            android:id="@+id/nextArrowImageView"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_alignParentRight="true"
            android:layout_alignTop="@+id/clearCrossImageView"
            android:layout_centerVertical="true"
            android:layout_marginRight="5dp"
            android:adjustViewBounds="true"
            android:contentDescription="@string/next"
            android:cropToPadding="false"
            android:paddingLeft="0dp"
            android:src="@drawable/next_arrow_png" />
        <Button
            android:id="@+id/clearButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_toRightOf="@+id/clearCrossImageView"
            android:background="@drawable/clear_next_background"
            android:text="@string/clear_number"
            android:textAllCaps="true"
            android:textColor="#ffffff" />
        <Button
            android:id="@+id/nextButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_toLeftOf="@+id/nextArrowImageView"
            android:background="@drawable/clear_next_background"
            android:text="@string/next"
            android:textAllCaps="true"
            android:textColor="#ffffff" />
    </RelativeLayout>
    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
            <Button
                android:id="@+id/button7"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/number_button"
                android:text="7"
                android:textColor="#ffffff"
                android:textSize="25dp"
                tools:ignore="HardcodedText" />
            <Button
                android:id="@+id/button8"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/number_button"
                android:text="8"
                android:textColor="#ffffff"
                android:textSize="25dp"
                tools:ignore="HardcodedText" />
            <Button
                android:id="@+id/button9"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/number_button"
                android:text="9"
                android:textColor="#ffffff"
                android:textSize="25dp"
                tools:ignore="HardcodedText" />
        </TableRow>
        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" >
            <Button
                android:id="@+id/button4"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/number_button"
                android:text="4"
                android:textColor="#ffffff"
                android:textSize="25dp"
                tools:ignore="HardcodedText" />
            <Button
                android:id="@+id/button5"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/number_button"
                android:text="5"
                android:textColor="#ffffff"
                android:textSize="25dp"
                tools:ignore="HardcodedText" />
            <Button
                android:id="@+id/button6"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/number_button"
                android:text="6"
                android:textColor="#ffffff"
                android:textSize="25dp"
                tools:ignore="HardcodedText" />
        </TableRow>
        <TableRow
            android:id="@+id/tableRow3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
            <Button
                android:id="@+id/button1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/number_button"
                android:text="1"
                android:textColor="#ffffff"
                android:textSize="25dp"
                tools:ignore="HardcodedText" />
            <Button
                android:id="@+id/button2"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/number_button"
                android:text="2"
                android:textColor="#ffffff"
                android:textSize="25dp"
                tools:ignore="HardcodedText" />
            <Button
                android:id="@+id/button3"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/number_button"
                android:text="3"
                android:textColor="#ffffff"
                android:textSize="25dp"
                tools:ignore="HardcodedText" />
        </TableRow>
        <TableRow
            android:id="@+id/tableRow4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:weightSum="6" >
            <ImageButton
                android:id="@+id/delImageButton"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="2"
                android:background="@drawable/number_button"
                android:contentDescription="@string/delete_button_description"
                android:cropToPadding="true"
                android:padding="17dp"
                android:scaleType="fitCenter"
                android:src="@drawable/del_button_png" />
            <Button
                android:id="@+id/button0"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:background="@drawable/number_button"
                android:text="0"
                android:textColor="#ffffff"
                android:textSize="25dp"
                tools:ignore="HardcodedText" />
            <Button
                android:id="@+id/buttonComma"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/number_button"
                android:text="@string/comma"
                android:textColor="#ffffff"
                android:textSize="25dp"
                tools:ignore="HardcodedText" />
            <Button
                android:id="@+id/buttonPlusMinus"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/number_button"
                android:text="+/-"
                android:textColor="#ffffff"
                android:textSize="25dp"
                tools:ignore="HardcodedText" />
        </TableRow>
    </TableLayout>
</LinearLayout>
编辑 2:我发现将这些字符串资源与其他字符串资源放在 res/values/strings.xml 文件中具有相同的效果,所以我猜这些资源存在一些问题。我在下面列出它们。
<string name="category_angles">Angles</string>
<string name="category_area">Area</string>
<string name="category_electricity">Electricity</string>
<string name="category_kitchen">Kitchen</string>
<string name="category_data">Data</string>
<string name="category_energy">Energy</string>
<string name="category_force">Force</string>
<string name="category_frequency">Frequency</string>
<string name="category_illumination">Illumination</string>
<string name="category_luminance">Luminance</string>
<string name="category_lenght">Lenght</string>
<string name="category_mass">Mass</string>
<string name="category_power">Power</string>
<string name="category_pressure">Pressure</string>
<string name="category_temperature">Temperature</string>
<string name="category_time">Time</string>
<string name="category_typography">Typography</string>
<string name="category_torsion">Torsion</string>
<string name="category_currencies">Currencies</string>
<string name="category_speed">Speed</string>
<string name="category_internet_speed">Internet speed</string>
<string name="category_volume">Volume</string>
编辑 3:我检查了我的 R.java 生成的文件以确保它不是资源生成器问题,但它看起来不错。粘贴下面的字符串部分。
public static final class string {
    public static final int action_settings=0x7f060017;
    public static final int animations_duration=0x7f060022;
    public static final int app_name=0x7f060016;
    public static final int categories_fragment_name=0x7f060021;
    public static final int category_angles=0x7f060000;
    public static final int category_area=0x7f060001;
    public static final int category_currencies=0x7f060012;
    public static final int category_data=0x7f060004;
    public static final int category_electricity=0x7f060002;
    public static final int category_energy=0x7f060005;
    public static final int category_force=0x7f060006;
    public static final int category_frequency=0x7f060007;
    public static final int category_illumination=0x7f060008;
    public static final int category_internet_speed=0x7f060014;
    public static final int category_kitchen=0x7f060003;
    public static final int category_lenght=0x7f06000a;
    public static final int category_luminance=0x7f060009;
    public static final int category_mass=0x7f06000b;
    public static final int category_power=0x7f06000c;
    public static final int category_pressure=0x7f06000d;
    public static final int category_speed=0x7f060013;
    public static final int category_temperature=0x7f06000e;
    public static final int category_time=0x7f06000f;
    public static final int category_torsion=0x7f060011;
    public static final int category_typography=0x7f060010;
    public static final int category_volume=0x7f060015;
    public static final int clear_number=0x7f060019;
    public static final int comma=0x7f06001d;
    public static final int delete_button_description=0x7f06001b;
    public static final int display_placeholder=0x7f06001c;
    public static final int hello_world=0x7f060020;
    public static final int history=0x7f060023;
    public static final int main_activity_name=0x7f06001e;
    public static final int next=0x7f06001a;
    public static final int number_fragment_name=0x7f060018;
    public static final int title_activity_category_list=0x7f06001f;
}