欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2022-07-05 17:45:05
文章目录国际化(I18N)LogCat的使用查看错误信息国际化(I18N) 开发Android程序时,想让不同国家的用户看到不同的效果,就需要对这个应用进行国际化(internationalization)。国际化的应用具备支持多种语言功能,能被不同国家或地区用户同时访问,提供符合访问者阅读习惯的页面和数据。 由于国家化单词internationalization首字母“i”和尾字母“n”之间有18个字符,因此被简称为I18N①②④⑤⑥LogCat的使用查看错...

国际化(I18N)

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

②在"res/values/"目录下创建两个用于国际化的string.xml文件;创建第一个文件
10.Android程序国际化、LogCat的使用、学会查看错误信息

③填写文件信息后,选择Locale点击 >> 按钮
10.Android程序国际化、LogCat的使用、学会查看错误信息

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

⑤在创建好的strings.xml文件中编写内容
 中文国际化文件:
10.Android程序国际化、LogCat的使用、学会查看错误信息
 英文国际化文件:
10.Android程序国际化、LogCat的使用、学会查看错误信息
 当设置好这些后,如果第二行标红,原因是没有在默认的strings.xml文件中定义一个name="text"的字符串资源,我在默认的strings.xml文件中随便定义了一个字符串资源
10.Android程序国际化、LogCat的使用、学会查看错误信息

⑥运行,模拟器默认使用的是英语
10.Android程序国际化、LogCat的使用、学会查看错误信息
在模拟器中将手机语言设置为中文再次打开软件;一定要重新设置手机语言,再在手机上再重新打开软件!不是再次运行一遍程序
10.Android程序国际化、LogCat的使用、学会查看错误信息

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信息困难,因此可以使用过滤器,过滤掉不要的信息
10.Android程序国际化、LogCat的使用、学会查看错误信息

③打开设置过滤器
10.Android程序国际化、LogCat的使用、学会查看错误信息
10.Android程序国际化、LogCat的使用、学会查看错误信息
tag和message信息都是在创建Log时已经定义的信息;包名和PID(注:每次重新运行项目时,PID都会发生改变)如下图:
10.Android程序国际化、LogCat的使用、学会查看错误信息

④使用自定义的过滤器log查看输出结果
10.Android程序国际化、LogCat的使用、学会查看错误信息

  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,那么在日志窗口显示的就只有错误级别的日志信息。
10.Android程序国际化、LogCat的使用、学会查看错误信息

示范实例
①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]);
        }
        
    }
}

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

②运行,软件被强制停止
10.Android程序国际化、LogCat的使用、学会查看错误信息

③当不知道哪里写错时,查看LogCat信息
10.Android程序国际化、LogCat的使用、学会查看错误信息

④错误信息都会以红色提示,蓝色提示报错行数,仔细找就会看到,点击蓝色数字,光标会转到报错的代码行
10.Android程序国际化、LogCat的使用、学会查看错误信息

⑤仔细查看代码,前后都阅读后,一般会找到错误的原因;错误已修改
10.Android程序国际化、LogCat的使用、学会查看错误信息

⑥再次运行,没有错误,查看输出
10.Android程序国际化、LogCat的使用、学会查看错误信息

注:本人通过所学、所知的Android知识写博客,以达到复习、学习、加深Android的相关知识。文中语气多为向他人讲解语气,但我不作为Android知识的 讲解 或 传播者 写博客,只是为了本人自己学习。文章之中肯定会出现错误,劳烦在空余之时给出指点、建议,谢谢。

本文地址:https://blog.csdn.net/wjq_wjn/article/details/107039172

相关标签: Android