Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android eclipseide中的LOGCAT理解_Android - Fatal编程技术网

Android eclipseide中的LOGCAT理解

Android eclipseide中的LOGCAT理解,android,Android,我有一个我无法理解的Logcat错误报告。你能帮帮我吗?我是Android应用程序开发新手 07-10 08:51:42.603: E/AndroidRuntime(791): FATAL EXCEPTION: main 07-10 08:51:42.603: E/AndroidRuntime(791): java.lang.ArrayIndexOutOfBoundsException: length=26; index=26 07-10 08:51:42.603: E/AndroidRun

我有一个我无法理解的
Logcat错误报告。你能帮帮我吗?我是Android应用程序开发新手

07-10 08:51:42.603: E/AndroidRuntime(791): FATAL EXCEPTION: main

07-10 08:51:42.603: E/AndroidRuntime(791): java.lang.ArrayIndexOutOfBoundsException: length=26; index=26

07-10 08:51:42.603: E/AndroidRuntime(791):  at com.example.hangman.Play$1.onClick(Play.java:70)

07-10 08:51:42.603: E/AndroidRuntime(791):  at android.view.View.performClick(View.java:4204)

07-10 08:51:42.603: E/AndroidRuntime(791):  at android.view.View$PerformClick.run(View.java:17355)

07-10 08:51:42.603: E/AndroidRuntime(791):  at android.os.Handler.handleCallback(Handler.java:725)

07-10 08:51:42.603: E/AndroidRuntime(791):  at android.os.Handler.dispatchMessage(Handler.java:92)

07-10 08:51:42.603: E/AndroidRuntime(791):  at android.os.Looper.loop(Looper.java:137)

07-10 08:51:42.603: E/AndroidRuntime(791):  at android.app.ActivityThread.main(ActivityThread.java:5041)

07-10 08:51:42.603: E/AndroidRuntime(791):  at java.lang.reflect.Method.invokeNative(Native Method)

07-10 08:51:42.603: E/AndroidRuntime(791):  at java.lang.reflect.Method.invoke(Method.java:511)

07-10 08:51:42.603: E/AndroidRuntime(791):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)

07-10 08:51:42.603: E/AndroidRuntime(791):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)

07-10 08:51:42.603: E/AndroidRuntime(791):  at dalvik.system.NativeStart.main(Native Method)
我的OnClickListener()代码如下: View.OnClickListener go\u func=new View.OnClickListener(){

@覆盖
公共void onClick(视图v){
int标志=0;
TextView状态=(TextView)findViewById(R.id.status);
TextView机会=(TextView)findViewById(R.id.chancess);
TextView word=(TextView)findViewById(R.id.word);
EditText guessed=(EditText)findViewById(R.id.letter_guessed);
字符串字母=猜测。getText().toString();
char[]Letter=Letter.toCharArray();
字符串current_status=status.getText().toString();
字符串current_chancess=chances.getText().toString();
字符串当前单词=新字符串();
//检查是否已经猜到了字母

对于(int i=0;iArrayIndexOutOfBoundsException,表示在访问数组时使用了错误的索引。 数组大小为26,索引应为0到25

改变这个

while(letters_guessed[i] != '\u0000')
        {
            len++;
            i++;
        }

while(i
LogCat显示崩溃发生时应用程序不同类中的哪个点正在执行:

顶行显示由于下一行
ArrayIndexOutOfBoundsException
(您试图访问大小为26的数组中的项目26,因为编号从0到25)

接下来,当应用程序在
com.example.hangman.Play活动中执行
onClick()
方法中的第70行时,会导致此异常:

at com.example.hangman.Play$1.onClick(Play.java:70)
剩下的几行是Android系统运行的类的其余部分(在崩溃发生时正在执行),这些类在内部执行
onClick()


总之,在
Play
活动中的
onClick()
方法中的
ArrayIndexOutOfBoundsException
位于
第70行的
可以帮助您在将来解决自己的问题(不仅仅是这个问题),了解如何有目的地使用Android Logger是很有帮助的。有一个很好的资源可以了解如何使用您想要记录的不同类型的信息

如果您不能一眼就发现问题,我会做的是有目的地使用记录器,找出您可能从何处获得意外结果。例如:

//checking if letter is already guessed
Log.d("Play", "letters_guessed.length = " + letters_guessed.length);
for(int i=0;i<letters_guessed.length;i++)
{
    Log.d("Play", "i = " + i);
    Log.d("Play", "Letter[0] = " + Letter[0]);
    if(Letter[0] == letters_guessed[i])
    {
        current_status = "Letter Already Guessed!";
        status.setText(current_status);
    }
    break;
}
//检查是否已经猜到了字母
Log.d(“Play”、“letters_gusted.length=“+letters_gusted.length”);

for(int i=0;这是我唯一能理解的!但是在我的程序中,代码只经过适当的索引!您需要在while循环中添加max i检查:while(iLog.d(this.getClass().getSimpleName(),“猜出的字母长度为”+猜出的字母长度)
在这里看不到行号,但我猜猜猜到的字母是空的。最初是空的。我会在应用程序运行时填充它。有什么问题吗?在你的Play类中,第70行是哪一行?非常糟糕的主题我必须说Log做什么?Log做什么。(什么)意思是?如果您使用Eclipse进行开发,您可以使用LogCat视图实时查看日志条目。“窗口-->显示视图-->其他…-->Android-->LogCat”。log.d中的“d”代表“调试”。还有“i”代表“信息”,“e”代表“错误”,等等。我提供的链接将为您提供有关这方面的更多信息。
at com.example.hangman.Play$1.onClick(Play.java:70)
//checking if letter is already guessed
Log.d("Play", "letters_guessed.length = " + letters_guessed.length);
for(int i=0;i<letters_guessed.length;i++)
{
    Log.d("Play", "i = " + i);
    Log.d("Play", "Letter[0] = " + Letter[0]);
    if(Letter[0] == letters_guessed[i])
    {
        current_status = "Letter Already Guessed!";
        status.setText(current_status);
    }
    break;
}