二进制 XML 文件第 0 行:使用 api 26 膨胀类 TextView 时出错
Posted
技术标签:
【中文标题】二进制 XML 文件第 0 行:使用 api 26 膨胀类 TextView 时出错【英文标题】:Binary XML file line #0: Error inflating class TextView using api 26 【发布时间】:2018-05-13 23:01:42 【问题描述】:所以我一直在使用 sdk26 构建应用程序,但在 api23 上进行测试,现在我尝试在 api26 上的模拟器和 android 设备上运行,我不断收到“Binary XML file line #0: Error inflating class TextView”错误。
这是它崩溃的 xml 文件的代码。
<?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_
android:layout_
tools:context="eventvoter.carter.eventrr.EnterCompetition">
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical">
<ImageView
android:id="@+id/elements"
android:layout_
android:layout_
android:layout_weight=".8"
app:src="@drawable/elements" />
<TextView
android:layout_
android:layout_
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_
android:layout_
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_
android:layout_
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_
android:layout_
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_
android:layout_
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_
android:layout_
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>
崩溃点指向我的主类代码的这些行。
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);
这是崩溃
致命异常:主要 进程:eventvoter.carter.eventrr,PID:11514 android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class TextView 原因:android.view.InflateException: Binary XML file line #0: Error inflating class TextView 引起:java.lang.RuntimeException:java.lang.reflect.InvocationTargetException 在 android.support.v4.graphics.TypefaceCompatApi26Impl.addFontFromAssetManager(TypefaceCompatApi26Impl.java:150) 在 android.support.v4.graphics.TypefaceCompatApi26Impl.createFromFontFamilyFilesResourceEntry(TypefaceCompatApi26Impl.java:218) 在 android.support.v4.graphics.TypefaceCompat.createFromResourcesFamilyXml(TypefaceCompat.java:116) 在 android.support.v4.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:249) 在 android.support.v4.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:213) 在 android.support.v4.content.res.ResourcesCompat.getFont(ResourcesCompat.java:206) 在 android.support.v7.widget.TintTypedArray.getFont(TintTypedArray.java:119) 在 android.support.v7.widget.AppCompatTextHelper.updateTypefaceAndStyle(AppCompatTextHelper.java:208) 在 android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:152) 在 android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:38) 在 android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:81) 在 android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:71) 在 android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:103) 在 android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1024) 在 android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1081) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:772) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:863) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:866) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:515) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:423) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:374) 在 android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 在 android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 在 eventvoter.carter.eventrr.MainMenu.createEnterCompView(MainMenu.java:302) 在 eventvoter.carter.eventrr.MainMenu$5.onClick(MainMenu.java:280) 在 android.view.View.performClick(View.java:6256) 在 android.view.View$PerformClick.run(View.java:24697) 在 android.os.Handler.handleCallback(Handler.java:789) 在 android.os.Handler.dispatchMessage(Handler.java:98) 在 android.os.Looper.loop(Looper.java:164) 在 android.app.ActivityThread.main(ActivityThread.java:6541) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 引起:java.lang.reflect.InvocationTargetException 在 java.lang.reflect.Method.invoke(本机方法) 在 android.support.v4.graphics.TypefaceCompatApi26Impl.addFontFromAssetManager(TypefaceCompatApi26Impl.java:145) 在 android.support.v4.graphics.TypefaceCompatApi26Impl.createFromFontFamilyFilesResourceEntry(TypefaceCompatApi26Impl.java:218) 在 android.support.v4.graphics.TypefaceCompat.createFromResourcesFamilyXml(TypefaceCompat.java:116) 在 android.support.v4.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:249) 在 android.support.v4.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:213) 在 android.support.v4.content.res.ResourcesCompat.getFont(ResourcesCompat.java:206) 在 android.support.v7.widget.TintTypedArray.getFont(TintTypedArray.java:119) 在 android.support.v7.widget.AppCompatTextHelper.updateTypefaceAndStyle(AppCompatTextHelper.java:208) 在 android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:152) 在 android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:38) 在 android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:81) 在 android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:71) 在 android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:103) 在 android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1024) 在 android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1081) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:772) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:863) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:866) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:515) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:423) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:374) 在 android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 在 android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 在 eventvoter.carter.eventrr.MainMenu.createEnterCompView(MainMenu.java:302) 在 eventvoter.carter.eventrr.MainMenu$5.onClick(MainMenu.java:280) 在 android.view.View.performClick(View.java:6256) 在 android.view.View$PerformClick.run(View.java:24697) 在 android.os.Handler.handleCallback(Handler.java:789) 在 android.os.Handler.dispatchMessage(Handler.java:98) 在 android.os.Looper.loop(Looper.java:164) 在 android.app.ActivityThread.main(ActivityThread.java:6541) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 引起:java.lang.NullPointerException 在 android.graphics.FontFamily.nAddFontFromAssetManager(本机方法) 在 android.graphics.FontFamily.addFontFromAssetManager(FontFamily.java:149) 在 java.lang.reflect.Method.invoke(本机方法) 在 android.support.v4.graphics.TypefaceCompatApi26Impl.addFontFromAssetManager(TypefaceCompatApi26Impl.java:145) 在 android.support.v4.graphics.TypefaceCompatApi26Impl.createFromFontFamilyFilesResourceEntry(TypefaceCompatApi26Impl.java:218) 在 android.support.v4.graphics.TypefaceCompat.createFromResourcesFamilyXml(TypefaceCompat.java:116) 在 android.support.v4.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:249) 在 android.support.v4.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:213) 在 android.support.v4.content.res.ResourcesCompat.getFont(ResourcesCompat.java:206) 在 android.support.v7.widget.TintTypedArray.getFont(TintTypedArray.java:119) 在 android.support.v7.widget.AppCompatTextHelper.updateTypefaceAndStyle(AppCompatTextHelper.java:208) 在 android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:152) 在 android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:38) 在 android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:81) 在 android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:71) 在 android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:103) 在 android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1024) 在 android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1081) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:772) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:863) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:866) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:515) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:423) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:374) 在 android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 在 android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 在 eventvoter.carter.eventrr.MainMenu.createEnterCompView(MainMenu.java:302) 在 eventvoter.carter.eventrr.MainMenu$5.onClick(MainMenu.java:280) 在 android.view.View.performClick(View.java:6256) 在 android.view.View$PerformClick.run(View.java:24697) 在 android.os.Handler.handleCallback(Handler.java:789) 在 android.os.Handler.dispatchMessage(Handler.java:98) 在 android.os.Looper.loop(Looper.java:164) 在 android.app.ActivityThread.main(ActivityThread.java:6541) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
分级
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'
【问题讨论】:
分享你的毕业作品 同时检查你的字体 不要使用驼峰式大小写来定义视图。检查一次你的 textview 样式。 您的问题可能是 android:fontFamily.. 临时删除并检查它 How to change fontFamily of TextView in Android的可能重复 【参考方案1】:我遇到了类似的崩溃
InflateException: Binary XML file line #0: Error inflating class EditText
在 Android 8.0 和 8.1 中发布 apk 由于 xml 字体 导致我没有使用最新的支持库,我更新了支持库版本并已修复。
xml 有
<EditText
android:id="@+id/editEmail"
android:layout_
android:layout_
android:fontFamily="@font/sanfranciscodisplay_medium"
android:hint="@string/enter_email_address"
android:lines="1"
android:inputType="textEmailAddress"
android:layout_centerHorizontal="true"/>
我的 gradle 配置
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'
【讨论】:
AnrdoidX 怎么样?以上是关于二进制 XML 文件第 0 行:使用 api 26 膨胀类 TextView 时出错的主要内容,如果未能解决你的问题,请参考以下文章
Google Map API 问题:android.view.InflateException:二进制 XML 文件第 2 行:二进制 XML 文件第 2 行:膨胀类片段时出错
API 19:android.view.InflateException:二进制 XML 文件行 #0:膨胀类 SeekBar 时出错
二进制 XML 文件第 0 行:膨胀类 <unknown> 时出错
java.lang.RuntimeException:二进制 XML 文件第 0 行:您必须提供 layout_height 属性
如何摆脱问题'二进制XML文件第8行:二进制XML文件第8行:使用XYPlot时会膨胀类com.androidplot.xy.XYPlot类]