zoukankan      html  css  js  c++  java
  • 自定义View编译失败。Binary XML file line #255: Error inflating

    02-28 15:17:16.281: DEBUG/AndroidRuntime(391): Shutting down VM
    02-28 15:17:16.281: WARN/dalvikvm(391): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391): FATAL EXCEPTION: main
    02-28 15:17:16.372: ERROR/AndroidRuntime(391): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.min.musicdemo/com.min.musicdemo.MusicDemo}: android.view.InflateException: Binary XML file line #255: Error inflating class com.min.musicdemo.lyric.LyricView
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at android.os.Handler.dispatchMessage(Handler.java:99)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at android.os.Looper.loop(Looper.java:123)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at android.app.ActivityThread.main(ActivityThread.java:4627)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at java.lang.reflect.Method.invokeNative(Native Method)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at java.lang.reflect.Method.invoke(Method.java:521)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at dalvik.system.NativeStart.main(Native Method)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391): Caused by: android.view.InflateException: Binary XML file line #255: Error inflating class com.min.musicdemo.lyric.LyricView
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at android.view.LayoutInflater.createView(LayoutInflater.java:513)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at android.app.Activity.setContentView(Activity.java:1647)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at com.min.musicdemo.MusicDemo.onCreate(MusicDemo.java:255)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     ... 11 more
    02-28 15:17:16.372: ERROR/AndroidRuntime(391): Caused by: java.lang.reflect.InvocationTargetException
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at com.min.musicdemo.lyric.LyricView.<init>(LyricView.java:39)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at java.lang.reflect.Constructor.constructNative(Native Method)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     at android.view.LayoutInflater.createView(LayoutInflater.java:500)
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     ... 23 more
    02-28 15:17:16.372: ERROR/AndroidRuntime(391): Caused by: java.lang.NullPointerException
    02-28 15:17:16.372: ERROR/AndroidRuntime(391):     ... 27 more
    02-28 15:17:16.421: WARN/ActivityManager(60):   Force finishing activity com.min.musicdemo/.MusicDemo
    02-28 15:17:16.942: WARN/ActivityManager(60): Activity pause timeout for HistoryRecord{44035078 com.min.musicdemo/.MusicDemo}
    02-28 15:17:27.986: WARN/ActivityManager(60): Activity destroy timeout for HistoryRecord{44035078 com.min.musicdemo/.MusicDemo}
    02-28 15:21:17.266: DEBUG/SntpClient(60): request time failed: java.net.SocketException: Address family not supported by protocol

    xml中使用

    XML/HTML code
     
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <!-- VIEW3 ********* lyric area -->
             < LinearLayout  xmlns:android = "http://schemas.android.com/apk/res/android"
                 android:id = "@+id/llLyric"
                 android:orientation = "vertical"
                android:layout_width = "fill_parent"
                 android:layout_height = "fill_parent" 
                 android:visibility = "gone"
                 android:layout_weight = "1"
                
                 < TextView
                     android:id = "@+id/tvLyricTitle" 
                     android:layout_width = "fill_parent" 
                     android:layout_height = "wrap_content"
                     android:paddingLeft = "4dip"
                     android:text = "动感歌词"
                     android:textColor = "#0000FF"
                      android:layout_gravity = "center_horizontal"
                     android:gravity = "center"
                     />
                 < com.min.musicdemo.lyric.LyricView
                     android:id = "@+id/lyricView" 
                     android:layout_width = "fill_parent" 
                     android:layout_height = "200dip"
                     />
             </ LinearLayout



    类定义

    Java code
     
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    public  class  LyricView  extends  View {
         private  static  final  String TAG =  "LyricView"
         
         private  Paint paint;
         private  Rect rect;                 // 歌词显示区域
         private  List<Sentence> list =  null ;     // 歌词list
         private  String text =  "Lyric is loading..." ;            // 单行歌词
         private  long  currentTime =  0 ;         // 正在演唱的时间
         private  int  color =  0xFF0000FF ;    // 歌词颜色
         
         public  LyricView(Context context) {
             super (context);
     
             // 生成paint    
             paint =  new  Paint();
             rect.left =  this .getLeft();
             rect.top =  this .getTop();
             rect.right =  this .getRight();
             rect.bottom =  this .getBottom();
         }
         
         public  LyricView(Context context, AttributeSet attrs) { // 构造方法;根据需要实现继承自View的方法   
             super (context, attrs);
             
             // 生成paint    
             paint =  new  Paint();
             rect.left =  10 ;
             rect.top =  50 ;
             rect.right =  10 ;
             rect.bottom =  50 ;
             
             //对于我们自定义的类中,我们需要使用一个名为obtainStyledAttributes的方法来获取我们的定义。   
             //得到自定义控件的属性值。   
         }


    靠,原来是在构造函数中忘了创建rect对象
    加上rect = new Rect();就ok了





  • 相关阅读:
    permission 文档 翻译 运行时权限
    TabLayout ViewPager Fragment 简介 案例 MD
    Log 日志工具类 保存到文件 MD
    OkHttp 官方wiki 翻译 MD
    Okhttp 简介 示例 MD
    OkHttp 官方Wiki之【使用案例】
    DialogPlus
    倒计时 总结 Timer Handler CountDownTimer RxJava MD
    RecyclerView 判断滑到底部 顶部 预加载 更多 分页 MD
    CSS3的媒体查询(Media Queries)与移动设备显示尺寸大全
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3206380.html
Copyright © 2011-2022 走看看