2012-07-24 129 views
5

很有點不可思議的錯誤是發生螞蟻無法更新到Android V20後我升級Android和Eclipse工具來V20

就會通過Ant構建停止在創建的APK簽署

與下面的錯誤工作後建簽署的apk
BUILD FAILED 
C:\Programs\Android\tools\ant\build.xml:1097: The following error occurred while executing this line: 
C:\Programs\Android\tools\ant\build.xml:1109: Cannot recover key 

任何想法在升級到android JB組件時可能會發生什麼變化,以及如何解決這個問題?

我很感激任何幫助...

回答

3

我剛剛在這個主題上花了大約5小時......它們都是在密碼後面的空間。

顯然在之前的版本中,它正在修改密碼,並且在當前版本中沒有。

因此,確保在行尾沒有空格可能會有所不同。這解決了我們的問題 - 不需要去JDK7(儘管它似乎無論如何建立和工作,至少從螞蟻來說)。

+0

你是@ Roberto C Serrano的救星。在ant.properties文件末尾也沒有多餘的空行。 – 2012-08-03 00:04:12

0

它看起來像你的調試密鑰是不會看到螞蟻。

+0

感謝您的迴應,構建xml被配置爲使用釋放密鑰對應用程序進行簽名。該設置在ant.properties文件中指定,該文件是在build.xml文件中指定的路徑。 請注意,在升級Android和eclipse工具到v20(果凍豆) – 2012-07-26 01:51:01

8

我們有同樣的問題,我們有一個解決方案,但不是一個真正的解釋!

我們現有的建立了在屬性文件中以下內容:

  • key.store = COMPANY_NAME-key.keystore
  • key.alias = COMPANY_NAME
  • key.store.password = KEY_STORE_PASSWORD
  • key.alias.password = KEY_ALIAS_PASSWORD

但是這已停止工作 - 但是當我們更改key.alias.p assword相匹配的存儲密碼,它正在例如:

  • key.store = COMPANY_NAME-key.keystore
  • key.alias = COMPANY_NAME
  • key.store.password = KEY_STORE_PASSWORD
  • key.alias .password = KEY_STORE_PASSWORD

別名不知道爲什麼,也許有人已經搗毀了螞蟻庫?

+0

之前,一切工作正常。感謝您的回覆uesr1556185。你的答覆實際上增加了更多的問題。事情是,我的商店和別名密碼從一開始就是一樣的... 順便說一下,我可以很好地導出簽署的apk使用eclipse安卓工具 - 右鍵單擊​​項目>安卓工具>導出簽名的應用程序包... – 2012-07-27 05:52:19

+0

謝謝,這對我很有用,但確實很奇怪。 – HefferWolf 2012-07-27 07:43:55

+0

很高興它適合你HefferWold,對不起,它不適用於Nar Gar。我有點不知所措,我看了一下SignApk ant目標的Git源碼,看不到任何明顯的錯誤。它確實提到了簽名過程中的一些變化 - 簽入是在這裏:https://android.googlesource.com/platform/sdk/+/1cb06d5bc82268dc5c684aa2ee7415175ce14c7e不明白爲什麼這將是一個問題。你在使用哪個JDK?也許SDK 7可能工作? – TeazelDev2 2012-07-27 19:54:19

1

之前的SDK V20,我已經建立使用bash腳本項目,進入密碼是這樣的:

build_v1.sh

ant release 
[email protected] 
[email protected] 

在V20它失敗,因爲密碼ISN」不被接受。它似乎與線條結束有關,但我不確定。爲防止構建過程詢問密碼,可以將密碼屬性添加到ant.properties文件中:

ant。性能

key.store=company-key.keystore 
key.alias=company 
[email protected] 
[email protected] 

對於我的具體項目,一個假的密鑰庫密碼保存在ant.properties,我在構建時與發行庫密碼替換它:

build_v2.sh

[email protected] 
sed -i "s|key.store.password=.*|key.store.password=${keyPass}|g" ant.properties 
sed -i "s|key.alias.password=.*|key.alias.password=${keyPass}|g" ant.properties 
ant release 

這可以讓我們的發行密鑰庫密碼保存在其他地方。祝你好運!

2

謹防差錯消息:

key.store.password錯誤導致:

密鑰存儲與被篡改,或密碼不正確:密碼 驗證失敗

而一個錯誤的key.alias.password導致:

無法恢復關鍵

對於EVERONE誰通過keytool -v -list mykeystore.keystore檢查只商店密碼永不verfied的alias.password。