阅读LogCat和其他一些问题

时间:2013-11-30 11:15:57

标签: android

我有两个问题(实际上是三个)。他们也是无关的!

  1. 给定的LogCat说什么?我的代码出了什么问题?我是Android开发的新手,我无法正确阅读。 我想知道这些错误是什么以及导致它们的原因是什么?
  2. 您如何阅读LogCat?你从一开始就读它吗?你是否开始理解并修复从第一个开始到最后一个错误的错误?
  3. 我开始学习Android开发,并且一直在阅读(和练习)来自developers.android.com的东西 我阅读(并实践过)有关活动的内容,有关Intents和Intent过滤器的内容,获得了流程和线程的概述(阅读和实践基础知识)以及清单文件。
    但问题是,无论我编写什么程序,它都表现不正常 我得到了很多例外,几乎每个应用程序都崩溃了 我说的是简单的应用程序 因此,我知道我没有掌握基础知识 所以我搜索了这本名为“Hello Android”的书 你会建议我从一开始就阅读这本书吗?
  4. logcat的: -

    11-30 05:56:03.357: I/System.out(1018): Start
    11-30 05:56:03.597: D/libEGL(1018): loaded /system/lib/egl/libEGL_emulation.so
    11-30 05:56:03.637: D/(1018): HostConnection::get() New Host Connection established 0x2a1c4c88, tid 1018
    11-30 05:56:03.657: D/libEGL(1018): loaded /system/lib/egl/libGLESv1_CM_emulation.so
    11-30 05:56:03.667: D/libEGL(1018): loaded /system/lib/egl/libGLESv2_emulation.so
    11-30 05:56:03.777: W/EGL_emulation(1018): eglSurfaceAttrib not implemented
    11-30 05:56:03.817: D/OpenGLRenderer(1018): Enabling debug mode 0
    11-30 05:56:04.987: D/dalvikvm(1018): GC_FOR_ALLOC freed 343K, 14% free 2654K/3080K, paused 44ms, total 47ms
    11-30 05:56:05.047: I/System.out(1018): Error
    11-30 05:56:05.057: W/System.err(1018): android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
    11-30 05:56:05.157: W/System.err(1018):     at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:5908)
    11-30 05:56:05.157: W/System.err(1018):     at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:837)
    11-30 05:56:05.178: W/System.err(1018):     at android.view.View.requestLayout(View.java:15792)
    11-30 05:56:05.178: W/System.err(1018):     at android.view.View.requestLayout(View.java:15792)
    11-30 05:56:05.178: W/System.err(1018):     at android.view.View.requestLayout(View.java:15792)
    11-30 05:56:05.188: W/System.err(1018):     at android.view.View.requestLayout(View.java:15792)
    11-30 05:56:05.188: W/System.err(1018):     at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:358)
    11-30 05:56:05.188: W/System.err(1018):     at android.view.View.requestLayout(View.java:15792)
    11-30 05:56:05.198: W/System.err(1018):     at android.widget.TextView.checkForRelayout(TextView.java:6524)
    11-30 05:56:05.207: W/System.err(1018):     at android.widget.TextView.setText(TextView.java:3771)
    11-30 05:56:05.207: W/System.err(1018):     at android.widget.TextView.setText(TextView.java:3629)
    11-30 05:56:05.207: W/System.err(1018):     at android.widget.TextView.setText(TextView.java:3604)
    11-30 05:56:05.217: W/System.err(1018):     at com.example.tutorialksoap21.MainActivity$1.run(MainActivity.java:43)
    11-30 05:56:05.217: W/System.err(1018):     at java.lang.Thread.run(Thread.java:841)
    

1 个答案:

答案 0 :(得分:0)

  1. 您必须阅读错误的第一行。您的异常是CalledFromWrongThreadException。它的名字很清楚。您尝试在主线程中设置与主线程不同的文本。

  2. 在您的LogCat上,您应该阅读该级别。 W表示警告,因此您需要先阅读。优先事项是:

    • 断言
    • 错误
    • 警告
    • 信息
    • 调试
    • 冗长

    在大多数情况下,警告或以上意味着不会发生预期的事情。

    关于你的异常,你有第一行有异常,在第二行,发生这种异常的方法,在第三行,调用第二行的方法,依此类推。 / p>

    例如,通过阅读我知道您试图在不同的线程中设置文本的那些行。

    我知道您使用行com.example.tutorialksoap21.MainActivity$1.run(MainActivity.java:43)

    运行不同的主题

    我知道你试图用android.widget.TextView.setText(TextView.java:3604)

  3. 上面的一行设置一个文本
  4. 关于第三个问题,没有答案,请参阅Stack Overflow如何提问:

      

    我们更喜欢可以回答的问题,而不仅仅是讨论过。