2013-09-27 80 views
1

嗨,我正在開發一個應用程序,您的使用是私人的,我不希望上傳到Google play。已經安裝了一個具有完整簽名的相同名稱的現有軟件包

當應用程序打開檢查,如果在一臺服務器中存在新的更新,如果存在下載的APK,然後再安裝

Intent i = new Intent(); 
    i.setAction(Intent.ACTION_VIEW); 
    i.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/ipacUpdates/ipac.apk")), "application/vnd.android.package-archive"); 

    this.ctx.startActivity(i); 

安裝結束時顯示此錯誤

an existing package by the same name with a confilcting signature is already installed

兩個APK用同一臺機器製造並在avd emulator上進行測試。

會發生什麼?

+0

您是如何部署第一個版本的? – Szymon

回答

0

我有同樣的問題,你需要運行的應用程序具有相同的簽名,你要升級到。當您通過模擬器運行應用程序時,它會獲得開發人員簽名。

我所做的是運行模擬器,刪除程序,然後從互聯網手動安裝我的應用程序,然後通過讓我的應用程序自行升級來測試升級。兩人都簽署了生產簽名,所以它能夠發生。

欲瞭解更多信息參考:Android App Not Install. An existing package by the same name with a conflicting signature is already installed

1

如果您擁有您正在嘗試安裝的應用程序,那麼只需在AndroidManifest.xml中增加android:versionCode="??"android:versionName="??",然後再次生成應用程序。

我希望這會有所幫助。

2

也許一個用默認的調試密鑰簽名,另一個用自己的密鑰簽名。確保兩個版本的構建方式相同。要麼將其上傳到Play,您應該擁有自己的密鑰庫並簽名。有關更多信息,請檢查以下link

2

轉到Settings -> Apps,然後輕掃於所有選項卡。向下滾動到列表的最後,其中舊版本以「未安裝」標記列出。選擇它,然後按下右上角的「設置」按鈕,最後「爲所有用戶卸載」

相關問題