android - 应用程序在启动时意外停止 - Eclipse 中没有编译错误

标签 android eclipse crash

我的 Android 应用程序(API 级别 8+)在 Eclipse 中编译时没有任何错误消息。

控制台显示:

[2011-08-04 16:10:50 - PROJECT_NAME] Android Launch!
[2011-08-04 16:10:50 - PROJECT_NAME] adb is running normally.
[2011-08-04 16:10:50 - PROJECT_NAME] Performing PACKAGE_NAME.MainActivity activity launch
[2011-08-04 16:10:52 - PROJECT_NAME] Uploading PROJECT_NAME.apk onto device '80A354043048365763'
[2011-08-04 16:10:52 - PROJECT_NAME] Installing PROJECT_NAME.apk...
[2011-08-04 16:10:55 - PROJECT_NAME] Success!
[2011-08-04 16:10:55 - PROJECT_NAME] Starting activity PACKAGE_NAME.MainActivity on device DEVICE_ID
[2011-08-04 16:10:56 - PROJECT_NAME] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=PACKAGE_NAME/.MainActivity }

这是始终显示的内容。然后,该应用程序将在我的 USB 连接的 Android 设备上启动。

它曾经工作得很好,直到在开发过程中的某个时刻出现以下消息:.

Sorry! The application Messages (process PACKAGE_NAME) has stopped unexpectedly. Please try again. Force close.

在后台,有应用程序窗口 - 但没有任何 GUI 元素:没有按钮,没有文本。顶部只是应用程序的标题。

我不知道为什么会出现此消息。我无法再测试我的应用程序。而且 - 正如我已经说过的 - Eclipse 中没有错误。

Logcat 的内容如下:

08-04 16:35:27.666: INFO/ActivityManager(2365): Force stopping package PACKAGE_NAME uid=10077
08-04 16:35:27.676: INFO/ActivityManager(2365): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=PACKAGE_NAME/.MainActivity }
08-04 16:35:27.726: WARN/Flex(2448): getString FLEX_OPERATOR_CODE OPEN
08-04 16:35:27.766: INFO/ActivityManager(2365): Start proc PACKAGE_NAME for activity PACKAGE_NAME/.MainActivity: pid=4262 uid=10077 gids={3003}
08-04 16:35:27.916: WARN/ActivityThread(4262): Application PACKAGE_NAME is waiting for the debugger on port 8100...
08-04 16:35:27.926: INFO/System.out(4262): Sending WAIT chunk
08-04 16:35:28.016: WARN/Flex(2365): getString FLEX_COUNTRY_CODE COM
08-04 16:35:28.016: WARN/Flex(2365): getString FLEX_OPERATOR_CODE OPEN
08-04 16:35:28.016: WARN/Flex(2365): getString FLEX_COUNTRY_CODE COM
08-04 16:35:28.016: WARN/Flex(2365): getString FLEX_OPERATOR_CODE OPEN
08-04 16:35:28.016: DEBUG/StatusBarPolicy(2365): [BRIGHTHY] 0. mDataNetType: 2
08-04 16:35:28.016: DEBUG/StatusBarPolicy(2365): [BRIGHTHY] curNetwork=26203 curHPLMN=26203
08-04 16:35:28.126: INFO/System.out(4262): Debugger has connected
08-04 16:35:28.136: INFO/System.out(4262): waiting for debugger to settle...
08-04 16:35:28.336: INFO/System.out(4262): waiting for debugger to settle...
08-04 16:35:28.536: INFO/System.out(4262): waiting for debugger to settle...
08-04 16:35:28.736: INFO/System.out(4262): waiting for debugger to settle...
08-04 16:35:28.936: INFO/System.out(4262): waiting for debugger to settle...
08-04 16:35:29.141: INFO/System.out(4262): waiting for debugger to settle...
08-04 16:35:29.336: INFO/System.out(4262): waiting for debugger to settle...
08-04 16:35:29.539: INFO/System.out(4262): waiting for debugger to settle...
08-04 16:35:29.739: INFO/System.out(4262): waiting for debugger to settle...
08-04 16:35:29.945: INFO/System.out(4262): waiting for debugger to settle...
08-04 16:35:30.146: INFO/System.out(4262): debugger has settled (1340)
08-04 16:35:31.016: WARN/Flex(2365): getString FLEX_COUNTRY_CODE COM
08-04 16:35:31.016: WARN/Flex(2365): getString FLEX_OPERATOR_CODE OPEN
08-04 16:35:31.016: WARN/Flex(2365): getString FLEX_COUNTRY_CODE COM
08-04 16:35:31.016: WARN/Flex(2365): getString FLEX_OPERATOR_CODE OPEN
08-04 16:35:31.026: DEBUG/StatusBarPolicy(2365): [BRIGHTHY] 0. mDataNetType: 2
08-04 16:35:31.026: DEBUG/StatusBarPolicy(2365): [BRIGHTHY] curNetwork=26203 curHPLMN=26203
08-04 16:35:34.016: WARN/Flex(2365): getString FLEX_COUNTRY_CODE COM
08-04 16:35:34.016: WARN/Flex(2365): getString FLEX_OPERATOR_CODE OPEN
08-04 16:35:34.016: WARN/Flex(2365): getString FLEX_COUNTRY_CODE COM
08-04 16:35:34.016: WARN/Flex(2365): getString FLEX_OPERATOR_CODE OPEN
08-04 16:35:34.026: DEBUG/StatusBarPolicy(2365): [BRIGHTHY] 0. mDataNetType: 2
08-04 16:35:34.026: DEBUG/StatusBarPolicy(2365): [BRIGHTHY] curNetwork=26203 curHPLMN=26203
08-04 16:35:37.016: WARN/Flex(2365): getString FLEX_COUNTRY_CODE COM
08-04 16:35:37.016: WARN/Flex(2365): getString FLEX_OPERATOR_CODE OPEN
08-04 16:35:37.016: WARN/Flex(2365): getString FLEX_COUNTRY_CODE COM
08-04 16:35:37.016: WARN/Flex(2365): getString FLEX_OPERATOR_CODE OPEN
08-04 16:35:37.026: DEBUG/StatusBarPolicy(2365): [BRIGHTHY] 0. mDataNetType: 2
08-04 16:35:37.026: DEBUG/StatusBarPolicy(2365): [BRIGHTHY] curNetwork=26203 curHPLMN=26203
08-04 16:35:37.697: WARN/ActivityManager(2365): Launch timeout has expired, giving up wake lock!
08-04 16:35:37.894: WARN/ActivityManager(2365): Activity idle timeout for HistoryRecord{451e5930 PACKAGE_NAME/.MainActivity}
08-04 16:35:40.016: WARN/Flex(2365): getString FLEX_COUNTRY_CODE COM
08-04 16:35:40.016: WARN/Flex(2365): getString FLEX_OPERATOR_CODE OPEN
08-04 16:35:40.016: WARN/Flex(2365): getString FLEX_COUNTRY_CODE COM
08-04 16:35:40.016: WARN/Flex(2365): getString FLEX_OPERATOR_CODE OPEN
08-04 16:35:40.026: DEBUG/StatusBarPolicy(2365): [BRIGHTHY] 0. mDataNetType: 2
08-04 16:35:40.026: DEBUG/StatusBarPolicy(2365): [BRIGHTHY] curNetwork=26203 curHPLMN=26203
08-04 16:35:43.017: WARN/Flex(2365): getString FLEX_COUNTRY_CODE COM
08-04 16:35:43.017: WARN/Flex(2365): getString FLEX_OPERATOR_CODE OPEN
08-04 16:35:43.017: WARN/Flex(2365): getString FLEX_COUNTRY_CODE COM
08-04 16:35:43.017: WARN/Flex(2365): getString FLEX_OPERATOR_CODE OPEN
08-04 16:35:43.026: DEBUG/StatusBarPolicy(2365): [BRIGHTHY] 0. mDataNetType: 2
08-04 16:35:43.026: DEBUG/StatusBarPolicy(2365): [BRIGHTHY] curNetwork=26203 curHPLMN=26203

我希望有人能帮助我......:)我几乎绝望了。预先非常感谢您!

编辑#1:

当我在 Eclipse 的 Debug模式下运行应用程序时,错误消息不会出现。应用程序窗口出现,但没有任何 GUI 元素。我必须使用“主页”按钮关闭窗口。返回按钮不起作用。在应用程序设置中我可以选择“强制停止”。那么线程可能有什么问题吗?也许应用程序卡住了?

编辑#2:

这似乎不是 Eclipse 问题或电话问题,因为我仍然能够创建“Hello World”应用程序。它甚至可以在手机上运行。

编辑#3:

我的主要 Activity 如下开始:

public class MainActivity extends ListActivity {

当我将其更改为...

public class MainActivity extends Activity {

...并注释掉以下行,应用程序将显示且没有任何错误消息:

setListAdapter(this.m_adapter);

编辑#4:

我想我又记得第一次出现问题之前我改变了什么:我实现了 tutorial on ListViews 的代码效果很好。但后来我将 ListView 的 ID(参见教程:main.xml)从“android:list”更改为“resultList”。所以这可能是原因。

当我现在把它改回来时,错误发生在initiateSearch()中,它显示thread.notifyAll();

当我注释掉这一行时,一切正常,没有任何错误,但应用程序当然不再做它应该做的事情。

最佳答案

与 Marco 交谈后发现错误与 xml 中 List 元素的 id 命名有关。

http://developer.android.com/reference/android/app/ListActivity.html - “...要做到这一点,您自己的 View 必须包含一个 id 为“@android:id/list”的 ListView 对象...”


Eclipse 有时有点垃圾!!

我会按顺序尝试的事情:

  1. 清洁项目
  2. 重新启动 Eclipse
  3. 从手机中完全删除应用程序、数据和缓存
  4. 在手机上进入“设置”->“应用程序”->“开发”,禁用然后重新启用 USB 调试
  5. 重新启动手机
  6. 重建您的 Eclipse 工作区

请告诉我这些是否有帮助

关于android - 应用程序在启动时意外停止 - Eclipse 中没有编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6943217/

相关文章:

ios - 为什么这不会崩溃?

android - 检查注册的内容观察者

javascript - keyPress 事件未在 Android 移动设备中触发

java - '.' 对齐的 Eclipse 格式化程序选项 (Java)

java - 在eclipse中同时启动多个java应用程序

eclipse - 删除 Eclipse 中的空行

android - FragmentActivity 导致 ClassNotFoundException

android - 为什么 UtteranceProgressListener 不是接口(interface)?

android - 如何在android后台运行一段代码?

C++ Dll字符串函数崩溃