Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android中XML可绘制文件的问题_Java_Android_Button_Styles - Fatal编程技术网

Java Android中XML可绘制文件的问题

Java Android中XML可绘制文件的问题,java,android,button,styles,Java,Android,Button,Styles,几个小时前,我刚刚在这里发布了一篇文章,经过一段艰难的时间后,我发现了大量的绘图和活动中到底出了什么问题。但现在我真的不明白为什么它不起作用 我为一个按钮创建了一个可绘制的xml,然后在styles.xml文件中定义了它自己的样式。首先引起我注意的是,当我在实际样式上调用xml drawable时,Android Studio无法显示图标,因此它会显示一个红色感叹号(在代码行旁边的代码部分)。无论如何,它在大多数设备中都可以正常工作,但我刚刚发现,在某些特定情况下,它引发了一个膨胀异常,这是由x

几个小时前,我刚刚在这里发布了一篇文章,经过一段艰难的时间后,我发现了大量的绘图和活动中到底出了什么问题。但现在我真的不明白为什么它不起作用

我为一个按钮创建了一个可绘制的xml,然后在styles.xml文件中定义了它自己的样式。首先引起我注意的是,当我在实际样式上调用xml drawable时,Android Studio无法显示图标,因此它会显示一个红色感叹号(在代码行旁边的代码部分)。无论如何,它在大多数设备中都可以正常工作,但我刚刚发现,在某些特定情况下,它引发了一个膨胀异常,这是由xml可绘制文件引起的。我真的不知道我要展示的代码有什么问题

这是可绘制的xml(default_button.xml):


然后在Styles.xml文件中设置如下样式:

<style name="ButtonNormalText" parent="@android:style/Widget.Button">
        <item name="android:textColor" >@color/black</item>
        <item name="android:textSize" >25dip</item>
        <item name="android:height" >44dip</item>
        <item name="android:background" >@drawable/default_button</item>
          <item name="android:focusable" >true</item>
          <item name="android:clickable" >true</item>
</style>

@颜色/黑色
25度
44度
@可绘图/默认按钮
真的
真的
引发错误的行是:
@drawable/default\u按钮

这很奇怪,因为每当我调用@drawable/xml\u drawable时,它会抛出一个:

FATAL EXCEPTION: main
Process: myapp.miquel.mqlapps.hombresmujeresapp, PID: 13239
   java.lang.RuntimeException: Unable to start activity ComponentInfo{myapp.miquel.mqlapps.hombresmujeresapp/myapp.miquel.mqlapps.hombresmujeresapp.MenuActivity}: android.view.InflateException: Binary XML file line #43: Error inflating class android.support.v7.internal.widget.ActionBarContextView

Caused by: android.view.InflateException: Binary XML file line #43: Error inflating class android.support.v7.internal.widget.ActionBarContextView

Caused by: java.lang.reflect.InvocationTargetException

Caused by: java.lang.RuntimeException: org.xmlpull.v1.XmlPullParserException: <internal>: <nine-patch> requires a valid 9-patch source image
致命异常:main
进程:myapp.miquel.mqlapps.hombresmujeresapp,PID:13239
java.lang.RuntimeException:无法启动活动组件信息{myapp.miquel.mqlapps.hombresmujeresapp/myapp.miquel.mqlapps.hombresmujeresapp.MenuActivity}:android.view.InflateException:二进制XML文件行#43:膨胀类android.support.v7.internal.widget.ActionBarContextView时出错
原因:android.view.InflateException:二进制XML文件行#43:膨胀类android.support.v7.internal.widget.ActionBarContextView时出错
原因:java.lang.reflect.InvocationTargetException
原因:java.lang.RuntimeException:org.xmlpull.v1.XmlPullParserException::需要有效的9补丁源映像

我真的不知道为什么它在大多数设备上都能工作,但在另一个设备上却失败了。你知道为什么吗?如果你需要更多的代码,你可以访问我在这篇文章中提供的链接。提前谢谢

好了,各位,我最终通过从零开始启动应用程序来修复它。只是将原始代码复制到新项目中,一切又像一个黑魔法诅咒一样开始工作。很抱歉,我不能想出一个更具体的解决方案,但这就是我修复这个奇怪错误的方法

我所能说的是,R文件似乎在某个时候被破坏了,我没有意识到这一点。因此,在创建了一个新项目后,由于新的R文件没有损坏,应用程序再次开始工作


谢谢。

您是否有其他名为
default\u button
的可绘图资源(如PNG)?否。default\u button只是一个xml文件。没有具有该名称的图像。不管怎样,正如我所说,它在2/3设备上工作。因此,如果这是一个主要问题,它可能会在大多数设备上失败,但事实并非如此。我真的不知道这个问题是怎么回事。这是一件痛苦的事。设备出现故障时有什么共同的因素吗?(Android版本?制造商?)出于好奇,也许可以尝试将三个形状制作成单独的XML可绘制形状,并在选择器可绘制的三个项目状态中的每一个上使用
Android:drawable=“…”
。我只知道一个设备的应用程序不工作,所以我不知道故障设备之间的共同因素。谢谢你的主意!我会检查的!哪个设备应用程序没有运行,并且设备的os版本可能只是一个
干净的汇编错误
会修复原始项目?
FATAL EXCEPTION: main
Process: myapp.miquel.mqlapps.hombresmujeresapp, PID: 13239
   java.lang.RuntimeException: Unable to start activity ComponentInfo{myapp.miquel.mqlapps.hombresmujeresapp/myapp.miquel.mqlapps.hombresmujeresapp.MenuActivity}: android.view.InflateException: Binary XML file line #43: Error inflating class android.support.v7.internal.widget.ActionBarContextView

Caused by: android.view.InflateException: Binary XML file line #43: Error inflating class android.support.v7.internal.widget.ActionBarContextView

Caused by: java.lang.reflect.InvocationTargetException

Caused by: java.lang.RuntimeException: org.xmlpull.v1.XmlPullParserException: <internal>: <nine-patch> requires a valid 9-patch source image