android.view.InflateException:二进制XML文件行#7:错误在扩展类时膨胀类... EditText

问题描述:

当我尝试创建自定义edittext时出现此错误。我做错了什么? 我试图运行从一前一后的代码: Extending a EditText in Android. What am I doing wrong?android.view.InflateException:二进制XML文件行#7:错误在扩展类时膨胀类... EditText

MainActivity.java:

package com.example.actionbarimagetest; 

import android.app.Activity; 
import android.os.Bundle; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

    } 
} 

MyEdiText.java:

package com.example.actionbarimagetest; 

import android.content.Context; 
import android.util.AttributeSet; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.EditText; 

public class MyEditText extends EditText implements OnClickListener { 

    public MyEditText(Context context, AttributeSet attrs) { 
    super(context, attrs); 

    } 

    public MyEditText(Context context) { 
     super(context); 

    } 

    public MyEditText(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 

    } 

    public void FlashBorder() 
    { 
     //do some custom action 
    } 
    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     EditText txt = (EditText) v; 
     txt.selectAll(); 
    } 
} 

activity_main.xml中:

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

    <com.example.actionbarimagetest 
     android:id="@+id/edtTaskName" 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent"/> 
</LinearLayout> 

全堆栈跟踪:

Process: com.example.actionbarimagetest, PID: 11781 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.actionbarimagetest/com.example.actionbarimagetest.MainActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class com.example.actionbarimagetest 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2202) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2252) 
      at android.app.ActivityThread.access$800(ActivityThread.java:139) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200) 
      at android.os.Handler.dispatchMessage(Handler.java:102) 
      at android.os.Looper.loop(Looper.java:136) 
      at android.app.ActivityThread.main(ActivityThread.java:5103) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:515) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 
      at dalvik.system.NativeStart.main(Native Method) 
    Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class com.example.actionbarimagetest 
      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:707) 
      at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
      at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:319) 
      at android.app.Activity.setContentView(Activity.java:1973) 
      at com.example.actionbarimagetest.MainActivity.onCreate(MainActivity.java:21) 
      at android.app.Activity.performCreate(Activity.java:5275) 
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2166) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2252) 
            at android.app.ActivityThread.access$800(ActivityThread.java:139) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:136) 
            at android.app.ActivityThread.main(ActivityThread.java:5103) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 
            at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.actionbarimagetest" on path: DexPathList[[zip file "/data/app/com.example.actionbarimagetest-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.actionbarimagetest-2, /vendor/lib, /system/lib]] 
      at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
      at java.lang.ClassLoader.loadClass(ClassLoader.java:497) 
      at java.lang.ClassLoader.loadClass(ClassLoader.java:457) 
      at android.view.LayoutInflater.createView(LayoutInflater.java:559) 
      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:319) 
            at android.app.Activity.setContentView(Activity.java:1973) 
            at com.example.actionbarimagetest.MainActivity.onCreate(MainActivity.java:21) 
            at android.app.Activity.performCreate(Activity.java:5275) 
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2166) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2252) 
            at android.app.ActivityThread.access$800(ActivityThread.java:139) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:136) 
            at android.app.ActivityThread.main(ActivityThread.java:5103) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 
            at dalvik.system.NativeStart.main(Native Method) 

在您的XML文件中用com.example.actionbarimagetest.MyEditText替换com.example.actionbarimagetest

+0

thanx,那是问题所在。 – user101

+0

请将答案标记为解决问题的解决方案 – clemp6r