簡體   English   中英

如何在USB連接的設備上的Android Studio中調試應用升級

[英]How to debug an app upgrade in Android Studio on a USB connected device

我已經在手機上發布了Google Play商店應用的正式版,並在Android Studio中發布了該應用的更新版本。 我想測試升級過程 ,但是遇到版本問題,然后是日志記錄問題。

要進行“干凈”安裝,我可以進入手機的設置“ Backup & reset > Automatic restore ,將其關閉,然后卸載該應用程序,然后從Play商店安裝它。 另外,我可以下載正式版APK並從adb命令行安裝(詳細信息如下)。 結果是我的設備應與常規生產用戶相同。

與該問題並不直接相關,但要了解我觀看升級過程的動機是該應用程序具有SQLite數據庫,並且我擴展了SQLiteOpenHelper ,因此調用了onUpgrade() ,並且正在完成一些數據庫架構工作。

更新不兼容

如果我單擊按鈕以部署應用程序,然后選擇我已連接的設備,則該設備要先卸載,然后再繼續:

安裝失敗,並顯示以下消息:無法完成會話:INSTALL_FAILED_UPDATE_INCOMPATIBLE

顯然我可以卸載,但這無法測試升級過程!

生成簽名APK

我使用“ Generate Signed APK... ”構建了一個“發行版” APK,與生成要上傳到Play商店的發行版時使用的過程相同。 這可以解決版本控制問題,但會導致日志記錄可見性問題。 過去和現在使用的發行版配置如下所示:

發布用於生產apk的構建類型

從命令行將APK安裝到設備

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

上面沒有升級但沒有卸載。 我使用的過程是在Android Studio中打開Terminal ,將目錄更改為存儲生成的APK的目錄,然后鍵入上述命令。

記錄/調試問題

adb命令行觸發了升級過程,但沒有立即開始向Logcat窗口提供調試信息。 我可以為所有進程連接到Logcat,但是我無法僅獲取進程的調試信息,也無法訪問調試工具。

Logcat窗口顯示無可調試進程

如何才能從運行簽名生產版本的設備開始,然后使包含在Android Studio中的更新版本能夠運行而無需卸載,並且能夠在升級過程中查看調試輸出? 或者,如何修改已簽名的生產版本,使其可以更新新版本並允許調試?

因為您是從Debuggable=false的APK開始的,所以解決方法包括:使用與生產發布過程相同的過程構建對應用程序的更新,並使Logcat包含所有過程,這可能是您最好的選擇。

從先前的源代碼控制版本重建

一種選擇是將應用的特定版本從您的源代碼控制系統中拉出,並使用Debuggable=true構建,然后將生成的APK用作起點,而不是使用Play商店中的APK。

為未來

制作兩個版本,而不是只制作一個APK發布版本並將其上傳到Play商店。 一個版本將照常簽名並上傳。 並使用完全相同的源代碼制作另一個具有Debuggable=true APK。 用版本號重命名每個文件。 然后,以后,如果您想嘗試從任何版本升級到任何版本,都可以這樣做,並且仍然具有調試功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM