經過漫長的尋找,找到了答案。原因就是因為簽名的問題。。。
什麼時候會報 install_parse_failed_inconsistent_certificates這個錯誤呢?
1)兩個應用,名字相同,簽名不同
2)公升級時前一版本簽名,後一版本沒簽名
3)公升級時前一版本為 debug 簽名,後乙個為自定義簽名
4)公升級時前一版本為 android 原始碼中的簽名,後乙個為 debug 簽名或自定義簽名
5)安裝未簽名的程式
6)安裝公升級已過有效期的程式
我想我的問題就是第1點,原來真機上的demo是有數字簽名的,而我的demo是copy過來,建立的新demo,簽名的方式是系統預設的方式。所以就導致了這個安裝錯誤的尷尬!!
以前對android的簽名打包也不是很懂,記得有人問我,簽名有什麼用,我曹了,想都不想就是簽名就是證明這個程式是你寫的....現在想想還真是年少無知
平時我們的程式可以在模擬器上安裝並執行,是因為在應用程式開發期間,由於是以debug面試進行編譯的,因此adt根據會自動用預設的金鑰和證書來進行簽名,而在以發布模式編譯時,apk檔案就不會得到自動簽名,這樣就需要進行手工簽名。
為什麼要簽名
2.簽名對包中每個檔案進行處理,以確保包中的內容不被替換(這個說實話,不是很懂)
3.對每個軟體的要求
我用以前的.keystore檔案對demo進行簽名後,就可以執行我的as demo了
mysql 今天碰到的兩個問題。
今天在 檢查環境的時候。報出 make no targets specified and no makefile found.stop.一連串的幾行錯誤。checking for tgetent in lncurses.no checking for tgetent in lcurses.no ch...
今天碰到乙個怪異的DB2問題
今天碰到乙個怪異的db2的問題,建立乙個表 create database lportal 但是用drop database lportal sql1013n 找不到資料庫別名或資料庫名稱 lportal sqlstate 42705 後來google一下,解決了 1.首先用 db2 list da...
nio ByteBuffer碰到的問題
bytebuffer1.allocate服務端接收不到op read事件問題 bytebuffer bytebuffer bytebuffer.allocate length sc.write bytebuffer 通過allocate建立的bytebuffer,需要呼叫下filp 方法,不呼叫,s...