• Android little error records


    1:在清单文件(Manifest)中加入权限时要注意,如下例:

    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>

    <uses-permission  android:name="android.permission.CHANGE_WIFI_STATE"/>

    而非:

    <uses-permission

    android:name="android.permission.CHANGE_NETWORK_STATE"

    android:name="android.permission.CHANGE_WIFI_STATE"/>

    写成后一种情况将会报如下错误:

    已经为元素 "uses-permission" 指定绑定到名称空间 "http://schemas.android.com/apk/res/android" 的属性 "name"。

    2:Replace "..." with ellipsis character (…, &&;#8230;) ?

    按照提示即可解决,提示的意思即为,用省略号的字符形式(…, &&;#8230;)?替换省略号"..."(这个省略号是由英文状态下输入的三个圆点),其中(…, &&;#8230;)?貌似是一个正则表达式(本人不太确定),解决方法有两个:

    第一种方法:跳到中文输入法下,按shift+^打出省略号

    第二种方法:直接将省略号替换为【&#8230;】

    猜测原因:可能是在字符编码的情况下,省略号可以更好的显示吧

    3:这里记录的只能算是一个小小的经验,不知道有时候你遇到过这样的问题没有,当你引用一个drawable资源,比如图片资源时,你引用后系统报错,说找不到这样的资源,而且有时候你即使把你的图片重命名了也不行,这个时候建议你仔细检查你的图片名称,有时候在图片的名称里面会偶然加入一些空格,英文状态下的空格有时候你不细心去看,还真的难以发现那么一个小小的空格,但是可能这个空格就会一直导致你的编译器给你报错。遇到了这种情况,如果确保了你的命名格式对的话,希望你可以仔细检查一下名字,看看有没有写错。

     4:ADT警告:This tag and its children can be replaced by one <TextView/> and a compound drawable

    下面的解决方案来自:http://stackoverflow.com/questions/3214424/android-layoutopt-this-tag-and-its-children-can-be-replaced-by-one-textview

    以一个例子呈现:

    修改之前的布局文件
    1. <LinearLayout    
    2. android:layout_width="fill_parent"  
    3. android:layout_height="wrap_content"    
    4. android:layout_marginTop="10dp"     
    5. android:padding="5dp" >   
    6.   
    7. <TextView    
    8.     android:layout_width="wrap_content"  
    9.     android:layout_height="wrap_content"  
    10.     android:layout_weight="1"  
    11.     android:text="My Compound Button" />   
    12.   
    13. <ImageView    
    14.     android:layout_width="wrap_content"  
    15.     android:layout_height="wrap_content"  
    16.     android:src="@drawable/my_drawable" />   
    17. </LinearLayout>  
    修改之后的布局文件
     
    1. <TextView     
    2.     android:layout_marginTop="10dp"  
    3.     android:layout_width="fill_parent"  
    4.     android:layout_height="wrap_content"    
    5.     android:text="My Compound Button"    
    6.     android:drawableRight="@drawable/my_drawable" android:padding="5dp" />  

    但有时候,我们或许在一个<Linearlayout>中设置<TextView>   <ImageView>另有他用。一个很好的修改方法就是将<Linearlayout>修改为<RelativeLayout>布局,其次对于 android:drawableRight属性不可以使用,否则将会抛出另一个异常:Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path),因为这个属性对象是drawable。

    下面是一个示例:

     
    1. <?xml version="1.0" encoding="utf-8"?>   
    2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    3.     android:layout_width="match_parent"  
    4.     android:layout_height="match_parent">   
    5.      <ImageView      
    6.         android:id="@+id/image"  
    7.         android:contentDescription="@string/cs"     
    8.         android:layout_width="90dip"     
    9.         android:layout_height="90dip"     
    10.         />     
    11.     <TextView    
    12.         android:id="@+id/title"  
    13.         android:layout_width="wrap_content"     
    14.         android:layout_height="wrap_content"     
    15.         android:layout_below="@id/image"/>   
    16. </RelativeLayout>  

    5:Eclipse警告:Warning:ArrayList is a raw type. References to generic type ArrayList should be parameterized 解决方案超赞(暂未翻译),参见:http://www.cnblogs.com/killerlegend/p/3349663.html

    6:textview cannot be cast to imageview........

    可以尝试的解决方法:Project-->clean,然后重新启动一次程序。

     7:

     Android之 ListView 的setonItemSelectedListener()之item单元点击无效处理方法

    可以考虑换成下面的解决方法:

     
    1. mListView.setOnItemClickListener(new OnItemClickListener()   
    2.       {   
    3.   
    4.         @Override  
    5.         public void onItemClick(AdapterView<?> parent, View view, int position,long id)   
    6.         {   
    7.             Toast.makeText(getApplicationContext(),    
    8.                            "当前所在行为:"+Long.toString(parent.getItemIdAtPosition(position)+1),    
    9.                            Toast.LENGTH_SHORT).show();   
    10.         }   
    11.       });  

    模拟器的鼠标滚动时会触发setItemOnselected()事件,而真机使用的软件,应该用 setItemOnClick().即手指头点击屏幕所出发的事件。

    8:Error:ScrollView can  host only one direct child.......

    意思就是ScrollView中只能有一个直接子代,如果出现两个或者两个以上,那么久会出现错误。你将scrollview中的子代换成一个就解决问题了。

    9:AlertDialog提示错误:android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application

    原因:在使用AlertDialog的时候,如下:

    Dialog dialog = new AlertDialog.Builder(context).
                    setTitle("温馨提示").
                    setIcon(R.drawable.image).
                    setMessage("本应用目前仅支持xxx地区,谢谢您的支持!").create();
    dialog.show();

    出错原因在于AlertDialog.Builder(context)中传入的参数context不正确,传入的context不能由getApplicationContext()获得,而必须是Activity的名字,如果你的Activity的类的名字是Home.java

    那么你在传入context的时候,只需传入Home.this即可。

    10:报错:

     android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

    在Intent变量中声明FLAG_ACTIVITY_NEW_TASK

    Intent intent = new Intent();
           intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);


    作者:KillerLegend
    出处:http://www.cnblogs.com/KillerLegend/
    分享最新的资源,分享个人所得,欢迎关注我的新浪微博
    新浪微博主页:ikey4u
    我的个人博客:www.ikey4u.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

     
  • 相关阅读:
    字符串去重
    你必须懂的 T4 模板:深入浅出
    解决T4模板的程序集引用的五种方案
    table 合并行和列
    porwedesigner 去掉引号
    面向对象JS基础
    19套最新的免费图标字体集
    推荐 15 款很棒的文本编辑器
    13个JavaScript图表(JS图表)图形绘制插件
    推荐10款免费而优秀的图表插件
  • 原文地址:https://www.cnblogs.com/killerlegend/p/3294336.html
Copyright © 2020-2023  润新知