【问题标题】:App works fine on Emulator but not on Mobile device应用程序在模拟器上运行良好,但在移动设备上运行不正常
【发布时间】:2012-08-03 06:30:53
【问题描述】:

我有一个 Android 应用程序,可以在按下“SAVE”按钮时将不同 EditText 框中的值保存到 Sqlite 数据库。这个应用程序在模拟器上运行良好,并提供所需的输出。但应用程序在移动设备上按“保存”按钮时显示“强制关闭”错误。

我以前在 Sqlite 数据库上工作过,我很确定那部分没有错误。那么有什么问题。请帮忙。

如果有帮助,这里是 LogCat 条目:-

08-03 12:08:28.875: I/ActivityManager(59): Starting activity: Intent {cmp=com.SMSDb/.Settings }
08-03 12:08:29.665: I/ActivityManager(59): Displayed activity com.SMSDb/.Settings: 744 ms (total 744 ms)
08-03 12:08:47.126: D/dalvikvm(10469): GC_FOR_MALLOC freed 6935 objects / 332488 bytes in 108ms
08-03 12:08:47.155: I/ActivityManager(59): Starting activity: Intent { cmp=com.SMSDb/.SMSDbActivity }
08-03 12:08:47.765: I/ActivityManager(59): Displayed activity com.SMSDb/.SMSDbActivity: 498 ms (total 498 ms)
08-03 12:08:57.765: I/ActivityManager(59): Starting activity: Intent { cmp=com.SMSDb/.Settings }
08-03 12:08:58.526: I/ActivityManager(59): Displayed activity com.SMSDb/.Settings: 665 ms (total 665 ms)
08-03 12:09:00.438: W/KeyCharacterMap(10469): No keyboard for id 0
08-03 12:09:00.438: W/KeyCharacterMap(10469): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
08-03 12:09:04.646: I/ActivityManager(59): Starting activity: Intent { cmp=com.SMSDb/.SMSDbActivity }
08-03 12:09:05.316: I/ActivityManager(59): Displayed activity com.SMSDb/.SMSDbActivity: 535 ms (total 535 ms)

【问题讨论】:

  • 可能是设备路径问题,能否上传错误代码(如果有)?
  • 请贴出你在 logcat 中得到的错误
  • @vickey-当我在模拟器上运行我的应用程序时,我没有收到任何错误或异常..
  • @Lucifer-当我在模拟器上运行我的应用程序时,我没有收到任何错误或异常..
  • 不看你的代码怎么能说出问题所在?

标签: android sqlite android-edittext forceclose


【解决方案1】:

按照这个:-

正如上面 Nirav- 所解释的那样:

您可以检查构建目标版本(右键单击项目 - 属性 - Android)并使用您的设备进行验证。如果不匹配,请将目标版本更改为您的设备平台版本。

永远不要执行上述步骤,因为这样做会极大地影响 android 的整个 eclipse 环境,因此您将面临 XML 文件 中的错误,您将无法轻松修复..

您的整个项目将开始使用任何相应的布局在所有 java 文件上显示错误——特别是在 setcontentview(R.layout.YourXMLFileName)

你会被要求导入'R'(android),这不会解决你的问题...

现在,如果您更改了开发应用程序的 android 平台版本,您应该将其更改回原始版本,只有在您完成安装后才会要求您安装某些软件包能够恢复您的原始设置或解决错误...

马尼克

【讨论】:

    【解决方案2】:

    问题可能是您没有在模拟器上运行应用的新副本。因此,未检查为新安装应用程序创建新 SQLite 数据库的代码,但这总是发生在您的移动设备中,因为它会重新安装 App。因此,请尝试在应用程序的 SQLite db 的“创建”部分进行调试。或许能解决问题!!

    【讨论】:

    • 对不起,其实我很久以前就找到了这个解决方案,但忘记发布作为答案。谢谢
    【解决方案3】:

    您可以检查构建目标版本(右键单击项目-属性-Android)并使用您的设备进行验证。如果不匹配,请将目标版本更改为您的设备平台版本。

    添加到您可以验证以下内容

    -未知来源为真

    -Debuggable需要USB调试

    -非大容量存储模式/USB连接访问SD卡

    -拔下重新插入

    -重启手机(确保可以拔掉usb并取出电池)

    -重启adb

    我从here 参考了这些

    我希望这会对你有所帮助。

    【讨论】:

      最近更新 更多