簡體   English   中英

更新到android v20后,Ant無法構建簽名的apk

[英]Ant fails to build signed apk after updating to android v20

在我將android和eclipse工具升級到v20后,發生了一些奇怪的錯誤

通過Ant構建在創建簽名的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組件時可能會有什么變化,怎么能糾正這個?

我感謝任何幫助......

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

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

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

但是這已停止工作 - 但是當我們更改key.alias.password以匹配商店密碼時,它正在工作,例如:

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

別名不知道為什么,也許有人搗亂了螞蟻庫?

我剛剛花了大約5個小時來討論這個話題......密碼之后,這一切都歸結為一個空格。

顯然在以前的版本中它修剪密碼,而在當前版本中它沒有。

因此,確保在行尾沒有空格可能會有所不同。 這解決了我們的問題 - 沒有必要去JDK7(雖然它似乎構建和工作正常,至少從螞蟻)。

小心錯誤消息:

key.store.password錯誤導致:

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

錯誤的key.alias.password導致:

無法恢復密鑰

對於通過keytool -v -list mykeystore.keystore僅檢查store-password並且從不驗證alias.password的人。

在SDK v20之前,我使用bash腳本構建了一個項目,輸入如下密碼:

build_v1.sh

ant release
p@ssw0rd
p@ssw0rd

在v20中它失敗,因為密碼未被接受。 它似乎與行尾字符有關,但我不確定。 要防止構建過程要求輸入密碼,可以將密碼屬性添加到ant.properties文件中:

ant.properties

key.store=company-key.keystore
key.alias=company
key.store.password=p@ssw0rd
key.alias.password=p@ssw0rd

對於我的特定項目,假的密鑰庫密碼保存在ant.properties中,我在構建時使用發布密鑰庫密碼替換它:

build_v2.sh

keyPass=p@ssw0rd
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

這允許我們的發布密鑰庫密碼被隱藏在其他地方。 祝好運!

看起來螞蟻看不到你的調試密鑰。

暫無
暫無

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

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