10.Android程序国际化、LogCat的使用、学会查看错误信息

国际化(I18N)

  开发Android程序时,想让不同国家的用户看到不同的效果,就需要对这个应用进行国际化(internationalization)。国际化的应用具备支持多种语言功能,能被不同国家或地区用户同时访问,提供符合访问者阅读习惯的页面和数据。
  由于国家化单词internationalization首字母“i”和尾字母“n”之间有18个字符,因此被简称为I18N
①实现国际化,这里新建一个包,专门用来演示如何国际化
在这里插入图片描述

②在"res/values/"目录下创建两个用于国际化的string.xml文件;创建第一个文件
在这里插入图片描述

③填写文件信息后,选择Locale点击 >> 按钮
在这里插入图片描述

④选择国家和语言,这里第一个选择以中国为例,填写完选择OK
在这里插入图片描述
上图中Director name后的values-zh-rCN的命名规则是“values-语言代码-r国家或地区代码”,以同样的方式在"/res/values"再次创建一个文件,选择语言以英语为例
在这里插入图片描述
由于module默认自带一个strings文件,而在此基础上又创建两个同名的国际化文件,Android Studio工具就会自动创建一个同名的文件夹存放这些文件,并且会根据语言和地区区分这些文件
在这里插入图片描述

⑤在创建好的strings.xml文件中编写内容
 中文国际化文件:
在这里插入图片描述
 英文国际化文件:
在这里插入图片描述
 当设置好这些后,如果第二行标红,原因是没有在默认的strings.xml文件中定义一个name="text"的字符串资源,我在默认的strings.xml文件中随便定义了一个字符串资源
在这里插入图片描述

⑥运行,模拟器默认使用的是英语
在这里插入图片描述
在模拟器中将手机语言设置为中文再次打开软件;一定要重新设置手机语言,再在手机上再重新打开软件!不是再次运行一遍程序
在这里插入图片描述

LogCat的使用

  LogCat是Android中的命令行工具,用于获取程序从启动到关闭的日志信息。Android中的应用运行在一个单独的设备中,应用的调式信息会数除到这个设备单独的日志缓冲区中。
  Android采用android.util.Log类的静态方法实现输出程序信息,Log类所输出的日志内容分为6个级别,由低到高分别是Verbose、Debug、Info、Warning、Error、Assert,前5个级别分别对应Log类中的Log.v()、Log.d()、Log.i()、Log.w()、Log.e()静态方法。Assert比较特殊,它是Android 4.0新增加的日志级别,没有对应的静态方法。

①通过编译Activity代码打印Log信息

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
		
		//参数一:MainActivity是自定义的tag信息;
        //参数二:是自定义的message信息
        Log.v("MainActivity","Verbose");
        Log.d("MainActivity","Debug");
        Log.i("MainActivity","Info");
        Log.w("MainActivity","Warning");
        Log.e("MainActivity","Error");
    }
}

②运行结果如下图;由于LogCat输出的信息多而繁杂,找到需要的Log信息困难,因此可以使用过滤器,过滤掉不要的信息
在这里插入图片描述

③打开设置过滤器
在这里插入图片描述
在这里插入图片描述
tag和message信息都是在创建Log时已经定义的信息;包名和PID(注:每次重新运行项目时,PID都会发生改变)如下图:
在这里插入图片描述

④使用自定义的过滤器log查看输出结果
在这里插入图片描述

  LogCat区域中日志信息显示的颜色是不同的,而且Level列中共有5种类型的字母,分别是V、D、I、W、E,这些字母表示不同的级别:
  verbose(V)显示全部信息,黑色
  debug(D)显示调试信息,蓝色
  info(I)显示一般信息,绿色
  warning(W)显示警告信息,橙色
  error(E)显示错误信息,红色
  Android中也支持通过System.out.println()语句把信息直接输出到LogCat控制台中,不建议使用。因为Java类繁多,使用这种方式输出的调试信息很难定位到具体代码中,打印时间无法确定,也不能添加过滤器,日志没有级别区分。

查看错误信息

  LogCat窗口的中间有下拉列表可以选择日志级别,假如当前选择的日志级别为error,那么在日志窗口显示的就只有错误级别的日志信息。
在这里插入图片描述

示范实例
①Activity中的代码;这里在for循环中故意写错,但是构建项目时它不会报错,运行后才会报错

public class MainActivity extends AppCompatActivity {

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

        //1.创建字符串类型的数组
        String[] str = {"A","B","C"};
        
        //2.使用for循环;i-- 故意写错
        for (int i=0; i<str.length; i--){
            System.out.println(str[i]);
        }
        
    }
}

在这里插入图片描述

②运行,软件被强制停止
在这里插入图片描述

③当不知道哪里写错时,查看LogCat信息
在这里插入图片描述

④错误信息都会以红色提示,蓝色提示报错行数,仔细找就会看到,点击蓝色数字,光标会转到报错的代码行
在这里插入图片描述

⑤仔细查看代码,前后都阅读后,一般会找到错误的原因;错误已修改
在这里插入图片描述

⑥再次运行,没有错误,查看输出
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值