Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.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 二进制XML文件行#12:膨胀类com.android.phone91.DialPadView时出错_Java_Android_Xml_Performance - Fatal编程技术网

Java 二进制XML文件行#12:膨胀类com.android.phone91.DialPadView时出错

Java 二进制XML文件行#12:膨胀类com.android.phone91.DialPadView时出错,java,android,xml,performance,Java,Android,Xml,Performance,我在setContentView(R.layout.home)上遇到错误这一行。因为我第一次面对这个问题,不知道如何解决它。它似乎是在设计问题,但不知道它是什么 这是我的密码 import java.util.regex.Matcher; import java.util.regex.Pattern; import android.content.Intent; import android.os.Bundle; import android.util.L

我在setContentView(R.layout.home)上遇到错误这一行。因为我第一次面对这个问题,不知道如何解决它。它似乎是在设计问题,但不知道它是什么 这是我的密码

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    import com.actionbarsherlock.app.SherlockActivity;

    public class DialerActivity extends SherlockActivity{

    TextView number;
    Button call;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            Log.e("Dialer activity", "Dilaer Activity");
            **setContentView(R.layout.home);**
            number = (TextView)findViewById(R.id.displayNumber);
            call = ((Button)findViewById(R.id.buttonDial));
        }   
    }
以下是xml:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@android:color/white"
        android:orientation="vertical" >

        <com.android.phone91.DialPadView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="#ffffff" />

        <Button
            android:id="@+id/buttonDial"
            android:layout_width="fill_parent"
            android:layout_height="40dp"
            android:layout_gravity="center"
            android:layout_marginTop="10dp"
            android:layout_marginLeft="40dp"
            android:layout_marginRight="40dp"
            android:layout_marginBottom="20dp"
            android:text="Call"
            android:textColor="@android:color/white"
            android:background="@drawable/button_background"
            android:gravity="center" >
        </Button>
    </LinearLayout>

</ScrollView>
这里是Logcat:

12-12 16:56:23.921: E/AndroidRuntime(25644): FATAL EXCEPTION: main
12-12 16:56:23.921: E/AndroidRuntime(25644): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.phone91/com.android.phone91.DialerActivity}: android.view.InflateException: Binary XML file line #12: Error inflating class com.android.phone91.DialPadView
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2355)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.app.ActivityThread.access$600(ActivityThread.java:151)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1335)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.os.Handler.dispatchMessage(Handler.java:99)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.os.Looper.loop(Looper.java:155)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.app.ActivityThread.main(ActivityThread.java:5520)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at java.lang.reflect.Method.invokeNative(Native Method)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at java.lang.reflect.Method.invoke(Method.java:511)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1029)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:796)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at dalvik.system.NativeStart.main(Native Method)
12-12 16:56:23.921: E/AndroidRuntime(25644): Caused by: android.view.InflateException: Binary XML file line #12: Error inflating class com.android.phone91.DialPadView
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.view.LayoutInflater.createView(LayoutInflater.java:613)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:324)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at com.actionbarsherlock.internal.ActionBarSherlockNative.setContentView(ActionBarSherlockNative.java:119)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at com.actionbarsherlock.app.SherlockActivity.setContentView(SherlockActivity.java:218)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at com.android.phone91.DialerActivity.onCreate(DialerActivity.java:24)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.app.Activity.performCreate(Activity.java:5066)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1101)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311)
12-12 16:56:23.921: E/AndroidRuntime(25644):    ... 11 more
12-12 16:56:23.921: E/AndroidRuntime(25644): Caused by: java.lang.reflect.InvocationTargetException
12-12 16:56:23.921: E/AndroidRuntime(25644):    at java.lang.reflect.Constructor.constructNative(Native Method)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.view.LayoutInflater.createView(LayoutInflater.java:587)
12-12 16:56:23.921: E/AndroidRuntime(25644):    ... 24 more
12-12 16:56:23.921: E/AndroidRuntime(25644): Caused by: java.lang.ClassCastException: com.android.phone91.DialerActivity cannot be cast to com.android.phone91.MainActivity
12-12 16:56:23.921: E/AndroidRuntime(25644):    at com.android.phone91.DialPadView.<init>(DialPadView.java:28)
12-12 16:56:23.921: E/AndroidRuntime(25644):    ... 27 more
12-12 16:56:23.921:E/AndroidRuntime(25644):致命异常:main
12-12 16:56:23.921:E/AndroidRuntime(25644):java.lang.RuntimeException:无法启动活动组件信息{com.android.phone91/com.android.phone91.DialerActivity}:android.view.InflateException:二进制XML文件行#12:膨胀类com.android.phone91.DialPadView时出错
12-12 16:56:23.921:E/AndroidRuntime(25644):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2355)
12-12 16:56:23.921:E/AndroidRuntime(25644):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391)
12-12 16:56:23.921:E/AndroidRuntime(25644):在android.app.ActivityThread.access$600(ActivityThread.java:151)
12-12 16:56:23.921:E/AndroidRuntime(25644):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1335)
12-12 16:56:23.921:E/AndroidRuntime(25644):位于android.os.Handler.dispatchMessage(Handler.java:99)
12-12 16:56:23.921:E/AndroidRuntime(25644):在android.os.Looper.loop(Looper.java:155)上
12-12 16:56:23.921:E/AndroidRuntime(25644):位于android.app.ActivityThread.main(ActivityThread.java:5520)
12-12 16:56:23.921:E/AndroidRuntime(25644):位于java.lang.reflect.Method.Invokenactive(本机方法)
12-12 16:56:23.921:E/AndroidRuntime(25644):在java.lang.reflect.Method.invoke(Method.java:511)
12-12 16:56:23.921:E/AndroidRuntime(25644):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1029)
12-12 16:56:23.921:E/AndroidRuntime(25644):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:796)
12-12 16:56:23.921:E/AndroidRuntime(25644):在dalvik.system.NativeStart.main(本机方法)
12-12 16:56:23.921:E/AndroidRuntime(25644):由以下原因引起:android.view.InflateException:二进制XML文件行#12:错误:对com.android.phone91.DialPadView类进行充气
12-12 16:56:23.921:E/AndroidRuntime(25644):在android.view.LayoutInflater.createView(LayoutInflater.java:613)
12-12 16:56:23.921:E/AndroidRuntime(25644):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
12-12 16:56:23.921:E/AndroidRuntime(25644):在android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
12-12 16:56:23.921:E/AndroidRuntime(25644):在android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
12-12 16:56:23.921:E/AndroidRuntime(25644):在android.view.LayoutInflater.inflate(LayoutInflater.java:489)
12-12 16:56:23.921:E/AndroidRuntime(25644):在android.view.LayoutInflater.inflate(LayoutInflater.java:396)
12-12 16:56:23.921:E/AndroidRuntime(25644):在android.view.LayoutInflater.inflate(LayoutInflater.java:352)
12-12 16:56:23.921:E/AndroidRuntime(25644):位于com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:324)
12-12 16:56:23.921:E/AndroidRuntime(25644):位于com.actionbarsherlock.internal.ActionBarSherlockNative.setContentView(ActionBarSherlockNative.java:119)
12-12 16:56:23.921:E/AndroidRuntime(25644):位于com.actionbarsherlock.app.SherlockActivity.setContentView(SherlockActivity.java:218)
12-12 16:56:23.921:E/AndroidRuntime(25644):位于com.android.phone91.DialerActivity.onCreate(DialerActivity.java:24)
12-12 16:56:23.921:E/AndroidRuntime(25644):在android.app.Activity.performCreate(Activity.java:5066)上
12-12 16:56:23.921:E/AndroidRuntime(25644):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1101)
12-12 16:56:23.921:E/AndroidRuntime(25644):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311)
12-12 16:56:23.921:E/AndroidRuntime(25644):。。。还有11个
12-12 16:56:23.921:E/AndroidRuntime(25644):由以下原因引起:java.lang.reflect.InvocationTargetException
12-12 16:56:23.921:E/AndroidRuntime(25644):位于java.lang.reflect.Constructor.constructNative(本机方法)
12-12 16:56:23.921:E/AndroidRuntime(25644):位于java.lang.reflect.Constructor.newInstance(Constructor.java:417)
12-12 16:56:23.921:E/AndroidRuntime(25644):在android.view.LayoutInflater.createView(LayoutInflater.java:587)
12-12 16:56:23.921:E/AndroidRuntime(25644):。。。还有24个
12-12 16:56:23.921:E/AndroidRuntime(25644):原因:java.lang.ClassCastException:com.android.phone91.DialerActivity无法强制转换为com.android.phone91.MainActivity
12-12 16:56:23.921:E/AndroidRuntime(25644):在com.android.phone91.DialPadView。(DialPadView.java:28)
12-12 16:56:23.921:E/AndroidRuntime(25644):。。。还有27个
传递给
DialPadView
context
是一个
DialerActivity
,但您试图将其强制转换为
main活动


通常,视图不应依赖于它们所显示的活动。如果您需要编写这样的代码,请后退一步,重新考虑设计。在您的情况下,您只需要一个
上下文
,而不是一个特定的
活动
-所有
hactivity
的使用都是在
DialPadView
构造函数(第28行)中将其用作
上下文

强制转换异常的地方-请将其包含在问题中。@laalto Done.另外,我在其他活动中使用home.xml,效果很好。非常感谢您,但我可以再解释一下,我如何解决它,因为我没有在拨号板视图中的任何位置传递上下文只需将
hactivity
全部删除并使用
getContext()
在视图中需要上下文的位置。
12-12 16:56:23.921: E/AndroidRuntime(25644): FATAL EXCEPTION: main
12-12 16:56:23.921: E/AndroidRuntime(25644): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.phone91/com.android.phone91.DialerActivity}: android.view.InflateException: Binary XML file line #12: Error inflating class com.android.phone91.DialPadView
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2355)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.app.ActivityThread.access$600(ActivityThread.java:151)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1335)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.os.Handler.dispatchMessage(Handler.java:99)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.os.Looper.loop(Looper.java:155)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.app.ActivityThread.main(ActivityThread.java:5520)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at java.lang.reflect.Method.invokeNative(Native Method)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at java.lang.reflect.Method.invoke(Method.java:511)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1029)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:796)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at dalvik.system.NativeStart.main(Native Method)
12-12 16:56:23.921: E/AndroidRuntime(25644): Caused by: android.view.InflateException: Binary XML file line #12: Error inflating class com.android.phone91.DialPadView
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.view.LayoutInflater.createView(LayoutInflater.java:613)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:324)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at com.actionbarsherlock.internal.ActionBarSherlockNative.setContentView(ActionBarSherlockNative.java:119)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at com.actionbarsherlock.app.SherlockActivity.setContentView(SherlockActivity.java:218)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at com.android.phone91.DialerActivity.onCreate(DialerActivity.java:24)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.app.Activity.performCreate(Activity.java:5066)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1101)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311)
12-12 16:56:23.921: E/AndroidRuntime(25644):    ... 11 more
12-12 16:56:23.921: E/AndroidRuntime(25644): Caused by: java.lang.reflect.InvocationTargetException
12-12 16:56:23.921: E/AndroidRuntime(25644):    at java.lang.reflect.Constructor.constructNative(Native Method)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
12-12 16:56:23.921: E/AndroidRuntime(25644):    at android.view.LayoutInflater.createView(LayoutInflater.java:587)
12-12 16:56:23.921: E/AndroidRuntime(25644):    ... 24 more
12-12 16:56:23.921: E/AndroidRuntime(25644): Caused by: java.lang.ClassCastException: com.android.phone91.DialerActivity cannot be cast to com.android.phone91.MainActivity
12-12 16:56:23.921: E/AndroidRuntime(25644):    at com.android.phone91.DialPadView.<init>(DialPadView.java:28)
12-12 16:56:23.921: E/AndroidRuntime(25644):    ... 27 more
hactivity = (MainActivity) context;