CarterTheSquatch
CarterTheSquatch

Reputation: 65

Binary XML file line #0: Error inflating class TextView using api 26

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'

Upvotes: 1

Views: 3122

Answers (1)

Qamar
Qamar

Reputation: 5135

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'

Upvotes: 4

Related Questions