1
votes

So I've been building an app with sdk26 but testing on an api23, now that I've tried running on an emulator and android device on api26 I keep getting "Binary XML file line #0: Error inflating class TextView" error.

Here's the code for the xml file it's crashing on.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/enter_competition_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context="eventvoter.carter.eventrr.EnterCompetition">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/elements"
            android:layout_width="match_parent"
            android:layout_height="176dp"
            android:layout_weight=".8"
            app:src="@drawable/elements" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="49dp"
            android:gravity="center"
            android:text="WHAT IS YOUR ELEMENT?"
            android:textColor="@color/Black"
            android:textStyle="bold"
            android:textSize="20dp"/>

        <TextView
            android:id="@+id/Vocalist"
            android:layout_width="match_parent"
            android:layout_height="162dp"
            android:background="@drawable/voc_crop_comp"
            android:fontFamily="@font/new_font"
            android:text="Vocalist/MC"
            android:textColor="@color/White"
            android:textStyle="bold"
            android:gravity="center"
            android:textSize="@dimen/small_text" />

        <TextView
            android:id="@+id/BeatProducer"
            android:layout_width="match_parent"
            android:layout_height="150dp"
            android:layout_weight="1"
            android:background="@drawable/beat_crop_comp"
            android:fontFamily="@font/new_font"
            android:gravity="center"
            android:textStyle="bold"
            android:text="Beat Producer"
            android:textColor="@color/White"
            android:textSize="@dimen/small_text" />

        <TextView
            android:id="@+id/DanceGroup"
            android:layout_width="match_parent"
            android:layout_height="150dp"
            android:fontFamily="@font/new_font"
            android:gravity="center"
            android:textStyle="bold"
            android:text="Dance Group"
            android:textColor="@color/White"
            android:textSize="@dimen/small_text"
            android:background="@drawable/dancegroup_crop_comp"
            android:layout_weight="1" />

        <TextView
            android:id="@+id/SoloDance"
            android:layout_width="match_parent"
            android:layout_height="150dp"
            android:fontFamily="@font/new_font"
            android:gravity="center"
            android:textStyle="bold"
            android:text="Solo Dance/B-Boy"
            android:textColor="@color/White"
            android:textSize="@dimen/small_text"
            android:layout_weight="1"
            android:background="@drawable/solodancer_crop_comp"/>

        <TextView
            android:id="@+id/Grafitti"
            android:layout_width="match_parent"
            android:layout_height="150dp"
            android:fontFamily="@font/new_font"
            android:gravity="center"
            android:textStyle="bold"
            android:text="Visual Arts/Graffiti"
            android:textColor="@color/White"
            android:textSize="@dimen/small_text"
            android:background="@drawable/visualarts_comp"
            android:layout_weight="1"/>


    </LinearLayout>
</LinearLayout>

The crash points to these lines of my main class code.

 public void createEnterCompView() {


    setContentView(R.layout.activity_enter_competition);

    TextView vocalist = (TextView) findViewById(R.id.Vocalist);
    TextView beatproducer = (TextView) findViewById(R.id.BeatProducer);
    TextView dancegroup = (TextView) findViewById(R.id.DanceGroup);
    TextView solodance = (TextView) findViewById(R.id.SoloDance);
    TextView visualarts = (TextView) findViewById(R.id.Grafitti);
    ImageView elements = (ImageView) findViewById(R.id.elements);

}

Here's the crash

FATAL EXCEPTION: main Process: eventvoter.carter.eventrr, PID: 11514 android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class TextView Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class TextView Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at android.support.v4.graphics.TypefaceCompatApi26Impl.addFontFromAssetManager(TypefaceCompatApi26Impl.java:150) at android.support.v4.graphics.TypefaceCompatApi26Impl.createFromFontFamilyFilesResourceEntry(TypefaceCompatApi26Impl.java:218) at android.support.v4.graphics.TypefaceCompat.createFromResourcesFamilyXml(TypefaceCompat.java:116) at android.support.v4.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:249) at android.support.v4.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:213) at android.support.v4.content.res.ResourcesCompat.getFont(ResourcesCompat.java:206) at android.support.v7.widget.TintTypedArray.getFont(TintTypedArray.java:119) at android.support.v7.widget.AppCompatTextHelper.updateTypefaceAndStyle(AppCompatTextHelper.java:208) at android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:152) at android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:38) at android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:81) at android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:71) at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:103) at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1024) at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1081) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:772) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) at android.view.LayoutInflater.rInflate(LayoutInflater.java:863) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) at android.view.LayoutInflater.rInflate(LayoutInflater.java:866) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) at android.view.LayoutInflater.inflate(LayoutInflater.java:515) at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at android.view.LayoutInflater.inflate(LayoutInflater.java:374) at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) at eventvoter.carter.eventrr.MainMenu.createEnterCompView(MainMenu.java:302) at eventvoter.carter.eventrr.MainMenu$5.onClick(MainMenu.java:280) at android.view.View.performClick(View.java:6256) at android.view.View$PerformClick.run(View.java:24697) at android.os.Handler.handleCallback(Handler.java:789) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6541) 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.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at android.support.v4.graphics.TypefaceCompatApi26Impl.addFontFromAssetManager(TypefaceCompatApi26Impl.java:145) at android.support.v4.graphics.TypefaceCompatApi26Impl.createFromFontFamilyFilesResourceEntry(TypefaceCompatApi26Impl.java:218)  at android.support.v4.graphics.TypefaceCompat.createFromResourcesFamilyXml(TypefaceCompat.java:116)  at android.support.v4.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:249)  at android.support.v4.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:213)  at android.support.v4.content.res.ResourcesCompat.getFont(ResourcesCompat.java:206)  at android.support.v7.widget.TintTypedArray.getFont(TintTypedArray.java:119)  at android.support.v7.widget.AppCompatTextHelper.updateTypefaceAndStyle(AppCompatTextHelper.java:208)  at android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:152)  at android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:38)  at android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:81)  at android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:71)  at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:103)  at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1024)  at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1081)  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:772)  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)  at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:866)  at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)  at android.view.LayoutInflater.inflate(LayoutInflater.java:515)  at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)  at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)  at eventvoter.carter.eventrr.MainMenu.createEnterCompView(MainMenu.java:302)  at eventvoter.carter.eventrr.MainMenu$5.onClick(MainMenu.java:280)  at android.view.View.performClick(View.java:6256)  at android.view.View$PerformClick.run(View.java:24697)  at android.os.Handler.handleCallback(Handler.java:789)  at android.os.Handler.dispatchMessage(Handler.java:98)  at android.os.Looper.loop(Looper.java:164)  at android.app.ActivityThread.main(ActivityThread.java:6541)  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.NullPointerException at android.graphics.FontFamily.nAddFontFromAssetManager(Native Method) at android.graphics.FontFamily.addFontFromAssetManager(FontFamily.java:149) at java.lang.reflect.Method.invoke(Native Method)  at android.support.v4.graphics.TypefaceCompatApi26Impl.addFontFromAssetManager(TypefaceCompatApi26Impl.java:145)  at android.support.v4.graphics.TypefaceCompatApi26Impl.createFromFontFamilyFilesResourceEntry(TypefaceCompatApi26Impl.java:218)  at android.support.v4.graphics.TypefaceCompat.createFromResourcesFamilyXml(TypefaceCompat.java:116)  at android.support.v4.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:249)  at android.support.v4.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:213)  at android.support.v4.content.res.ResourcesCompat.getFont(ResourcesCompat.java:206)  at android.support.v7.widget.TintTypedArray.getFont(TintTypedArray.java:119)  at android.support.v7.widget.AppCompatTextHelper.updateTypefaceAndStyle(AppCompatTextHelper.java:208)  at android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:152)  at android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:38)  at android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:81)  at android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:71)  at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:103)  at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1024)  at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1081)  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:772)  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)  at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:866)  at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)  at android.view.LayoutInflater.inflate(LayoutInflater.java:515)  at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)  at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)  at eventvoter.carter.eventrr.MainMenu.createEnterCompView(MainMenu.java:302)  at eventvoter.carter.eventrr.MainMenu$5.onClick(MainMenu.java:280)  at android.view.View.performClick(View.java:6256)  at android.view.View$PerformClick.run(View.java:24697)  at android.os.Handler.handleCallback(Handler.java:789)  at android.os.Handler.dispatchMessage(Handler.java:98)  at android.os.Looper.loop(Looper.java:164)  at android.app.ActivityThread.main(ActivityThread.java:6541)  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) 

Gradle

apply plugin: 'com.android.application'

android {
useLibrary 'org.apache.http.legacy'
compileSdkVersion 26
    buildToolsVersion '26.0.2'

    defaultConfig {
        applicationId "eventvoter.carter.eventrr"
        minSdkVersion 21
        targetSdkVersion 26
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 
'proguard-rules.pro'
    }
  }
}

dependencies {


implementation 'com.android.support.constraint:constraint-layout:1.0.2'
compile fileTree(include: ['*.jar'], dir: 'libs')
compile project(':httpclient-4.5.3')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:26.1.0'
compile project(':universal-image-loader-1.9.5 (1)')
compile project(':okhttp-3.9.0')
compile 'com.facebook.android:facebook-login:4.28.0'
compile 'com.google.gms:google-services:3.1.2'
//noinspection GradleCompatible
implementation 'com.google.firebase:firebase-auth:11.6.0'
implementation 'com.google.android.gms:play-services-auth:11.6.0'
compile 'com.github.bumptech.glide:glide:4.3.1'

}

apply plugin: 'com.google.gms.google-services'
1
share your gradleyogesh lokhande
also check for your fontyogesh lokhande
don't use camel case for define view's is. check once your textview style.Hemant Parmar
your issue in may be android:fontFamily.. Temporary remove and check itMitesh Vanaliya

1 Answers

4
votes

I got similar crash

InflateException: Binary XML file line #0: Error inflating class EditText

in Android 8.0 and 8.1 in release apk due to xml fonts cause I didn't use latest support libs, I update support library version and it's fixed.

xml having

<EditText
        android:id="@+id/editEmail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="@font/sanfranciscodisplay_medium"
        android:hint="@string/enter_email_address"
        android:lines="1"
        android:inputType="textEmailAddress"
        android:layout_centerHorizontal="true"/>

My gradle configs

BUILD_TOOLS_VER = '26.0.2'

TARGET_SDK_VER = 26
MIN_SDK_VER = 19

SUPPORT_LIBS_VER = '26.1.0' -> '27.0.2' (fix here)
GOOGLE_SERVICES_VER = '11.4.0' -> '11.8.0'