【问题标题】:Old copy of application appears on Android Emulator (using Eclipse IDE)应用程序的旧副本出现在 Android 模拟器上(使用 Eclipse IDE)
【发布时间】:2011-08-06 17:57:46
【问题描述】:

我正在使用 Eclipse 和 Android 插件进行 Android 手机开发。我刚刚完成了“Busy Coder's”书中的第一个应用程序,但我遇到了一个持续存在的问题。每次我使用引用示例项目的正确配置的 Android Run 配置运行示例 Java 应用程序时,模拟器都会启动(如果尚未启动)并且应用程序似乎已部署到模拟器。但是,模拟器上显示的并不是应用程序当前状态的反映。具体来说,我输入的示例应用程序应该显示当前时间,然后每次单击主应用程序视图区域时,它应该更新当前时间(通过在具有 onClick() 处理程序的构造函数中创建的 Button 对象实例)。相反,我看到“Hello World”并单击主视图区域什么也没做。

就好像测试应用程序的某个旧副本正在被提取。我什至找到了该项目的字符串 XML 文件,并且确实找到了一个定义为“Hello World”的字符串声明。然后我将该字符串更改为其他内容,重建项目并重新启动应用程序。但是我仍然得到相同的“Hello World”显示并且在单击主视图区域时仍然没有得到任何响应。我什至尝试关闭 Eclipse 和模拟器,但没有任何改变,并且还在测试运行前清理了项目。

那么,新手常犯的哪些错误会导致这种情况?

-- 罗施勒

【问题讨论】:

  • 我有时会遇到同样的问题,我认为这与在模拟器中启用“快照”有关。但还不确定。不过,通常重新编译会为我修复它。
  • 请注意,您始终可以在正在运行的模拟器上卸载应用程序,就像在真正的 Android 设备上卸载应用程序一样。此外,如果您使用 Android SDK 和 AVD 管理器“手动”启动模拟器(通过 Eclipse 窗口菜单),您可以选择“擦除用户数据”,这也将确保旧版本的应用程序不是正在运行。

标签: java android eclipse android-emulator


【解决方案1】:

我在 Eclipse 中打开清单文件,通过删除和取消删除某些内容来“触摸”它,然后保存它。这似乎为我刷新了 APK。

【讨论】:

    【解决方案2】:

    如果您在调试模式下启动,新版本将始终安装在模拟器/设备中。

    但是,如果您在运行模式下启动,则需要增加 AndroidManifest.xml 中的版本号,否则新版本将无法始终安装。

    请参阅今天早些时候的Android: Eclipse doesn't pushed new version of app to emulator

    希望这会有所帮助,

    菲尔·莱洛

    【讨论】:

    • 这根本不是真的。我经常在运行模式下启动而不更新清单,并且没有问题 - 总是安装新版本的应用程序,替换旧版本的应用程序。
    • @Thane 经验各不相同。其他人遇到了这个问题并通过增加版本号来解决它。除了重新安装之外,您是否遇到/解决了这个问题?
    【解决方案3】:

    到目前为止,发生这种情况的最常见原因是我没有注意到编译应用程序时出错,因此它没有推送新版本。特别是当我的包资源管理器被遮挡时,我没有注意到红色的 X。 编辑:它经常发生在我身上的另一个原因是我有多个模拟器在运行,或者我的手机或平板电脑插电了,我不小心将最新版本安装到了错误的设备上。

    【讨论】:

      【解决方案4】:

      这种情况偶尔会发生在我身上,但通常可以通过从模拟器 UI 中删除应用程序来解决。

      从模拟器中删除应用程序并重新安装后,我可以使用“运行”启动应用程序。在此之后,每次使用“运行”按钮时都会更新应用程序。

      检查控制台以查看 Activity 是否正在实际安装和启动,而不是在您“运行”应用程序时被带到最前面。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-26
        • 2012-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多