Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
204 views
in Technique[技术] by (71.8m points)

java - Binary XML file line #0: Error inflating class <unknown>

I have error running a quiz game. Something like this (when open gameactivity). My application stop and I ge Binary XML file error on line #0. It`s kinda weird, becouse I didnt see problem like this with line 0, so I need your help, everyone. Thanks!

E/AndroidRuntime: FATAL EXCEPTION: main
   Process: sarveshchavan777.triviaquiz, PID: 2901
   java.lang.RuntimeException: Unable to start activity ComponentInfo{sarveshchavan777.triviaquiz/sarveshchavan777.triviaquiz.MainGameActivity}: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class <unknown>
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
       at android.app.ActivityThread.-wrap11(Unknown Source:0)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
       at android.os.Handler.dispatchMessage(Handler.java:105)
       at android.os.Looper.loop(Looper.java:164)
       at android.app.ActivityThread.main(ActivityThread.java:6540)
       at java.lang.reflect.Method.invoke(Native Method)
       at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
    Caused by: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class <unknown>
    Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class <unknown>
    Caused by: java.lang.reflect.InvocationTargetException
       at java.lang.reflect.Constructor.newInstance0(Native Method)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
       at android.view.LayoutInflater.createView(LayoutInflater.java:650)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:793)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:733)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:866)
       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:827)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:869)
       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:827)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
       at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:288)
       at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:143)
       at sarveshchavan777.triviaquiz.MainGameActivity.onCreate(MainGameActivity.java:36)
       at android.app.Activity.performCreate(Activity.java:6980)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
       at android.app.ActivityThread.-wrap11(Unknown Source:0)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
       at android.os.Handler.dispatchMessage(Handler.java:105)
       at android.os.Looper.loop(Looper.java:164)
       at android.app.ActivityThread.main(ActivityThread.java:6540)
       at java.lang.reflect.Method.invoke(Native Method)
       at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
    Caused by: java.lang.UnsupportedOperationException: Can't convert value at index 1 to color: type=0x5
       at android.content.res.TypedArray.getColor(TypedArray.java:473)
       at info.hoang8f.widget.FButton.parseAttrs(FButton.java:116)
       at info.hoang8f.widget.FButton.<init>(FButton.java:52)
       at java.lang.reflect.Constructor.newInstance0(Native Method) 
       at java.lang.reflect.Constructor.newInstance(Constructor.java:334) 
       at android.view.LayoutInflater.createView(LayoutInflater.java:650) 
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:793) 
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:733) 
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:866) 
       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:827) 
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:869) 
       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:827) 
       at android.view.LayoutInflater.inflate(LayoutInflater.java:518) 
       at android.view.LayoutInflater.inflate(LayoutInflater.java:426) 
       at android.view.LayoutInflater.inflate(LayoutInflater.java:377) 
       at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:288) 
       at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:143) 
       at sarveshchavan777.triviaquiz.MainGameActivity.onCreate(MainGameActivity.java:36) 
       at android.app.Activity.performCreate(Activity.java:6980) 
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213) 
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770) 
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 
       at android.app.ActivityThread.-wrap11(Unknown Source:0) 
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 
       at android.os.Handler.dispatchMessage(Handler.java:105) 
       at android.os.Looper.loop(Looper.java:164) 
       at android.app.ActivityThread.main(ActivityThread.java:6540) 
       at java.lang.reflect.Method.invoke(Native Method) 
       at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 

Where MainGameActivity.java:36 is: setContentView(R.layout.activity_game_main);

activity_game_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fbutton="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/backgroundColor"
    android:orientation="vertical"
    tools:context="sarveshchavan777.triviaquiz.MainGameActivity">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/lightGreen"
        android:minHeight="?actionBarSize">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="0dp">



            <TextView
                android:id="@+id/triviaQuizText"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:text="@string/app_name"
                android:textColor="@color/white"
                android:textSize="25sp"
                android:layout_toLeftOf="@+id/timeText"
                android:layout_toRightOf="@+id/coinText" />

            <TextView
                android:id="@+id/timeText"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:paddingLeft="10dp"
                android:gravity="center"
                android:paddingRight="10dp"
                android:text="@string/time"
                android:textSize="20sp" />

        </RelativeLayout>
    </android.support.v7.widget.Toolbar>

    <View
        android:layout_width="match_parent"
        android:layout_height="10dp"></View>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=".5"
        android:background="@color/white"
        android:orientation="vertical">

        <TextView
            android:id="@+id/triviaQuestion"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="20dp"
            android:gravity="center"
            android:text="@string/question"
            android:textColor="@color/grey"
            android:textSize="18sp" />

        <TextView
            android:id="@+id/resultText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text=""
            android:textColor="@color/green"
            android:textSize="30sp" />
    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="center"
        android:orientation="vertical">

        <info.hoang8f.widget.FButton
            android:id="@+id/buttonA"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:onClick="buttonA"
            android:text=""
            android:textColor="@color/grey"
            fbutton:buttonColor="@color/white"
            fbutton:cornerRadius="10dp"
            fbutton:shadowColor="@color/grey" />

        <info.hoang8f.widget.FButton
            android:id="@+id/buttonB"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:onClick="buttonB"
            android:text=""
            android:textColor="@color/grey"
            fbutton:buttonColor="@color/white"
            fbutton:cornerRadius="10dp"
            fbutton:shadowColor="@color/grey" />


        <info.hoang8f.widget.FButton
            android:id="@+id/buttonC"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:onClick="buttonC"
            android:text=""
            android:textColor="@color/grey"
            fbutton:buttonColor="@color/white"
            fbutton:cornerRadius="10dp"
            fbutton:shadowColor="@color/grey" />

        <info.hoang8f.widget.FButton
            android:id="@+id/buttonD"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:onClick="buttonD"
            android:text=""
            android:textColor="@color/grey"
            fbutton:buttonColor="@color/white"
            fbutton:cornerRadius="10dp"
            fbutton:shadowColor="@color/grey" />

    </LinearLayout>


</LinearLayout>

Where is the problem?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

The problem comes with the library itself, If you check attrs.xml:

<attr name="buttonColor" format="color" />

As you can see the buttonColor only accepts color value, NOT color reference, and the view is trying to convert reference value you pass in xml to color and it throws an exception, So you can only use color for this attribute ( like this: #000000) Or fork the project and modify attrs.xml like this:

<attr name="buttonColor" format="color|reference" />

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...