2012-02-20 181 views
1

當我嘗試調試已安裝的應用程序時,出現上述錯誤消息。大多數遇到此問題的人似乎都在使用不同密鑰文件的不同機器上進行開發,但我正在同一個盒子上做所有事情。由於應用程序簽名不同,重新安裝失敗

我的問題是我正在測試我的數據庫升級過程(即我的SQLiteOpenHelper擴展的onUpgrade()方法是什麼)。爲此,我想嘗試在各種舊版本之上進行升級。這些版本可作爲已簽名的應用程序包提供。當我將這樣的軟件包部署到新的仿真器上,然後嘗試調試當前版本時,我在主題行中看到錯誤。我認爲這是因爲調試部署包未簽名,並且當前安裝的包已簽名。同樣,我知道如果我取消當前安裝的應用程序,錯誤消失,但是我無法測試升級。

我不想經歷將我的開發環境切換回舊版本的努力,以便我可以爲這些版本構建未簽名的包。我甚至可能無法做到這一點,因爲我最近切換了源代碼庫並丟失了一些歷史記錄。

我相信如果我能夠讓Eclipse生成一個用於調試的簽名包,它應該可以工作。或者,我可以手動部署已簽名的軟件包並啓動調試會話而無需構建/部署步驟,但我還沒有弄清楚這是否可行。我能做什麼?

編輯:Android documentation有助於確定如何使用調試密鑰簽署軟件包,但這對我沒有幫助,因爲我需要使用私鑰進行調試。我想這是不可能的。

+0

,你應該產生他們都與一個署名 - 否則它不會工作。只有卸載和全新安裝才能使用不同的簽名。 http://developer.android.com/guide/publishing/app-signing.html – 2012-02-20 18:46:31

回答

3

您可以使用發佈密鑰簽署當前軟件包,安裝在設備上,運行應用程序並在Eclipse中連接調試器。如何連接調試器:在DDMS角度對設備視圖「綠色蟲」選擇應用程序,並按下按鈕:

enter image description here

+0

完美完美。唯一的問題是,我的應用程序強制關閉時,它開始(和舊數據庫存在)。儘管點擊很快,但我仍然能夠進入一個斷點。謝謝。 – cdonner 2012-02-20 19:33:45

1

我會後它作爲一個答案:

你應該產生他們都與一個署名 - 否則它不會工作。只有卸載和全新安裝才能使用不同的簽名。 http://developer.android.com/guide/publishing/app-signing.html還採取從那裏:

Eclipse用戶 如果您在Eclipse/ADT發展(並建立了使用Keytool和的jarsigner如上籤署基本設置描述的),在調試模式下簽名默認情況下啓用。當您運行或調試應用程序時,ADT使用調試證書籤署.apk,在程序包上運行zipalign,然後將其安裝在選定的仿真器或連接的設備上。只要ADT有權訪問Keytool,您就不需要採取任何具體行動。

+0

謝爾蓋,我想明白了,但我不能用調試鍵退出我的舊軟件包,我也不能重新創建它們。看起來我運氣不好,如果沒有調試器的幫助,升級失敗的原因將不得不找到原因。 – cdonner 2012-02-20 19:02:13

+0

@cdonner你可以使用命令行'adb shell'然後鍵入'logcat',看看它在哪裏失敗 – 2012-02-20 20:24:47

相關問題