【问题标题】:Android API 21 9patch error?Android API 21 9patch 错误?
【发布时间】: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: &lt;nine-patch&gt; requires a valid 9-patch source image
  • 引起:org.xmlpull.v1.XmlPullParserException:二进制 XML 文件第 24 行: 需要有效的 9-patch 源图像堆栈跟踪中的最后一个原因
  • 所以,是的,正是我在之前的评论中添加的内容。它告诉您您没有使用 9 补丁 image。请注意,image 不同于 xml 文件。我猜你对 9 个补丁有点困惑。
  • @Rotwang 您错了,因为 XML 文件可以包含 &lt;nine-patch&gt; 元素,该元素指向源路径中的有效 9-patch 图像,但在尝试膨胀那个drawable。
  • @RichardLeMesurier 当然。但9 patch error 假定 9 补丁 image 结构中存在错误(即:畸形边框)。

标签: android


【解决方案1】:

我认为这是最新的 gradle 插件版本的问题。

我正在使用:

classpath 'com.android.tools.build:gradle:2.2.0-alpha3'

我得到和你一样的错误。

您可以回滚到此版本的插件来解决问题:

classpath 'com.android.tools.build:gradle:2.1.0'

但这意味着如果您使用的是预览版 Android Studio 版本,则无法使用 Instant Run。

作为参考,我使用的是 android studio:

Android Studio 2.2 Preview 3
Build #AI-145.2949926, built on June 7, 2016
JRE: 1.8.0_76-release-b01 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o

我在 v21 设备上进行了尝试,但出现了错误。 在运行 21 的设备上没有收到错误。

【讨论】:

  • Google 似乎意识到了这个问题。希望它会很快得到修复! code.google.com/p/android/issues/detail?id=210467
  • 在使用 gradle 稳定版 v2.2.1 构建的华为设备上仍然存在错误。我希望 v2.2.2 能解决这个问题。否则可能会有一个相关的错误,具有相同的堆栈跟踪,但与华为有关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-06
  • 2019-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多