如何在USB连接的设备上的Android Studio中调试应用升级

时间:2018-11-08 19:55:59

标签: android google-play upgrade android-install-apk

我已经在手机上发布了Google Play商店应用的正式版,并在Android Studio中拥有了该应用的更新版本。 我想测试升级过程,但是遇到版本问题,然后是日志记录问题。

要进行“全新”安装,我可以进入手机的设置Backup & reset > Automatic restore,将其关闭,然后重新安装该应用程序,然后从Play商店安装它。或者,我可以下载正式版APK,并通过adb命令行进行安装(详细信息如下)。结果是我的设备应该与普通生产用户相同。

与该问题没有直接关系,但要了解我观看升级过程的动机是该应用程序具有SQLite数据库,并且我扩展了SQLiteOpenHelper,因此调用了onUpgrade(),并提供了一些数据库架构工作正在完成。

更新不兼容

如果我单击按钮以部署该应用程序,然后选择我已连接的设备,则该设备要卸载,然后继续:

  

安装失败,并显示消息无法完成会话:INSTALL_FAILED_UPDATE_INCOMPATIBLE

很明显,我可以卸载,但是这不会测试升级过程!

生成签名的APK

我使用Generate Signed APK...构建了一个“发行” APK,这与生成要上传到Play商店的发行时所使用的过程相同。这可以解决版本控制问题,但会导致日志记录可见性问题。过去和现在使用的发行版配置如下:

Release build type used for production apk

从命令行将APK安装到设备上

  

“ C:\ Program Files(x86)\ HTC \ HTC Sync Manager \ HTC Sync \ adb” install -r app-release.apk

以上完成的升级没有卸载。我使用的过程是在Android Studio中打开Terminal,将目录更改为存储生成的APK的目录,然后键入上述命令。

记录/调试问题

adb命令行触发了升级过程,但没有立即开始向Logcat窗口提供调试信息。我可以为所有进程连接到Logcat,但是我无法仅获取进程的调试信息,也无法访问调试工具。

Logcat window shows No Debuggable Processes

问题

我该如何从运行签名生产版本的设备开始,然后使包含在Android Studio中的更新版本能够运行而无需卸载,并且能够在升级过程中查看调试输出?或者,如何修改已签名的生产版本,使其可以更新新版本并允许调试?

1 个答案:

答案 0 :(得分:0)

因为您从Debuggable=false的APK开始,所以解决方法包括:使用与生产发布过程相同的过程来构建应用程序的更新,并获取包含所有过程的Logcat。尽你所能。

从先前的源代码控制版本重建

一种选择是将应用的特定版本从您的源代码控制系统中拉出,并使用Debuggable=true进行构建,然后以生成的APK作为起点,而不是使用Play商店中的APK。

为了未来

制作两个版本,而不是只制作一个APK发布版本并将其上传到Play商店。一个版本将照常签名并上传。并使用完全相同的源代码制作另一个具有Debuggable=true的APK。用版本号重命名每个文件。然后,以后,如果您想尝试从任何版本升级到任何版本,都可以这样做,并且仍然具有调试功能。