【发布时间】:2016-06-09 07:30:42
【问题描述】:
在我目前的开发过程中,我遇到了一个非常奇怪的错误...... 在所有经过测试的 API 版本上,该应用程序运行完美、流畅且没有错误,但仅在 API 21 上我收到以下错误,我不知道如何解决此问题。
06-08 12:59:49.703 2865-2865/de.eplus.b2p.alditalk.mock_local E/AndroidRuntime: FATAL EXCEPTION: main
Process: mypackage, PID: 2865
java.lang.RuntimeException: Unable to start activity ComponentInfo{de.eplus.b2p.alditalk.mock_local/mypackage.LoginActivity}: android.view.InflateException: Binary XML file line #72: Error inflating class EditText
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2739)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2804)
at android.app.ActivityThread.access$900(ActivityThread.java:181)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6066)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Caused by: android.view.InflateException: Binary XML file line #72: Error inflating class EditText
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:770)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
at android.view.LayoutInflater.inflate(LayoutInflater.java:366)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at de.eplus.b2p.whitelabel.common.login.LoginActivity.onCreate(LoginActivity.java:290)
at android.app.Activity.performCreate(Activity.java:6368)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2692)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2804)
at android.app.ActivityThread.access$900(ActivityThread.java:181)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6066)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Caused by: android.content.res.Resources$NotFoundException: File res/drawable-v21/abc_edit_text_material.xml from drawable resource ID #0x7f020015
at android.content.res.Resources.loadDrawableForCookie(Resources.java:3761)
at android.content.res.Resources.loadDrawable(Resources.java:3629)
at android.content.res.TypedArray.getDrawable(TypedArray.java:762)
at android.view.View.<init>(View.java:3991)
at android.widget.TextView.<init>(TextView.java:1012)
at android.widget.EditText.<init>(EditText.java:80)
at android.widget.EditText.<init>(EditText.java:76)
at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:60)
at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:56)
at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:112)
at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:980)
at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:1039)
at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:732)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
at android.view.LayoutInflater.inflate(LayoutInflater.java:366)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at de.eplus.b2p.whitelabel.common.login.LoginActivity.onCreate(LoginActivity.java:290)
at android.app.Activity.performCreate(Activity.java:6368)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2692)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2804)
at android.app.ActivityThread.access$900(ActivityThread.java:181)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6066)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #24: <nine-patch> requires a valid 9-patch source image
at android.graphics.drawable.NinePatchDrawable.updateStateFromTypedArray(NinePatchDrawable.java:445)
at android.graphics.drawable.NinePatchDrawable.inflate(NinePatchDrawable.java:401)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1170)
at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:185)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1170)
at android.graphics.drawable.InsetDrawable.inflate(InsetDrawable.java:105)
at android.graphics.drawable.Drawable.cr
有人可以帮我解决这个问题吗?文件
res/drawable-v21/abc_edit_text_material.xml
我猜它包含在 appcompat 库中...我已经更新了构建工具,多次清理了所有内容,重新安装了所有内容,甚至对设备进行了硬重置,但它并没有改变任何事情。几个星期前我工作过......突然发生了这种情况,我不知道发生了什么变化......(没有接触过这个项目)
【问题讨论】:
-
Android API 21 9patch error?和res/drawable-v21/abc_edit_text_material.xml不匹配。如何将 xml 与 9 补丁进行比较?这告诉你更多:Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #24: <nine-patch> requires a valid 9-patch source image -
引起:org.xmlpull.v1.XmlPullParserException:二进制 XML 文件第 24 行:
需要有效的 9-patch 源图像堆栈跟踪中的最后一个原因 -
所以,是的,正是我在之前的评论中添加的内容。它告诉您您没有使用 9 补丁 image。请注意,image 不同于 xml 文件。我猜你对 9 个补丁有点困惑。
-
@Rotwang 您错了,因为 XML 文件可以包含
<nine-patch>元素,该元素指向源路径中的有效 9-patch 图像,但在尝试膨胀那个drawable。 -
@RichardLeMesurier 当然。但
9 patch error假定 9 补丁 image 结构中存在错误(即:畸形边框)。
标签: android