2012-07-24 22 views
5

Sporo dziwny błąd występuje po uaktualnieniu android i zaćmienie narzędzia do V20Ant nie budować podpisaną apk po aktualizacji do Android V20

budynku przez Ant przestał działać z powodu następującego błędu przy tworzeniu podpisany 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 

Jakieś pojęcie, co mogło ulec zmianie podczas aktualizacji do składników JB Androida i jak można to naprawić?

Doceniam jakiejkolwiek pomocy ...

Odpowiedz

3

Właśnie spędziłem około 5 godzin na ten temat ... Wszystko sprowadzało się do spacji po haśle.

Podobno w poprzedniej wersji był przycinanie hasła, aw obecnej wersji nie.

Zatem upewnienie się, że nie masz spacji na końcu linii, może zrobić różnicę. To rozwiązało dla nas problem - nie trzeba iść do JDK7 (chociaż wydaje się, że buduje i działa dobrze mimo to, przynajmniej od mrówki).

+0

Jesteś ratownikiem @Roberto C Serrano. Również bez dodatkowych pustych linii na końcu pliku ant.properties. –

0

Wygląda klucz debugowania nie jest postrzegana przez mrówki.

+0

Dzięki za odpowiedź, kompilacja XML jest skonfigurowana tak, aby podpisywać aplikację za pomocą klucza zwalniającego. To ustawienie jest określone w pliku ant.properties, którego ścieżka jest określona w pliku build.xml. Należy pamiętać, że wszystko działało przed aktualizacją narzędzi Android i Eclipse do wersji v20 (żelki) –

8

Mieliśmy ten sam problem i mamy rozwiązanie, ale nie jest to wyjaśnienie!

naszych istniejących buduje miał następujące właściwości w plikach:

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

Ale to przestało działać - jednak gdy zmienimy key.alias.p assword dopasować hasło magazynu jest np roboczy:

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

Alias ​​nie wie, dlaczego, być może ktoś zmarnował bibliotekę mrówek?

+0

Dziękujemy za odpowiedź uesr1556185. Twoja odpowiedź rzeczywiście wzbudziła więcej pytań. Chodzi o to, że mój sklep i aliasy hasła są takie same od samego początku ... Przy okazji mogę ładnie wyeksportować podpisaną apk za pomocą narzędzi androidowych Eclipse - Kliknij prawym przyciskiem myszy na projekt> Narzędzia Android> Eksportuj podpisaną aplikację Pakiet ... –

+0

Dziękuję, to działało dla mnie, ale bardzo dziwne. – HefferWolf

+0

Cieszę się, że to działa dla ciebie Heffer, przepraszam, że nie dla Nar Gar. Nie jestem pewien, co zasugerować, przyjrzałem się źródłu Git dla ant Target Antena SignApk i nie widziałem niczego wyraźnie nie tak. Wspomina się o pewnych zmianach w procesie podpisywania - check-in jest tutaj: https://android.googlesource.com/platform/sdk/+/1cb06d5bc82268dc5c684aa2ee7415175ce14c7e nie widzi powodu, dla którego byłby to problem. Z jakiego JDK korzystasz? Być może SDK 7 może działać? – TeazelDev2

1

Przed SDK V20, miałem zbudowany projektu przy użyciu skryptu bash, wchodząc do haseł tak:

build_v1.sh

ant release 
[email protected] 
[email protected] 

W V20 to nie działa, ponieważ ISN Hasło” t są akceptowane. Wygląda na to, że jest związany z końcem linii, ale nie jestem pewien. Aby uniemożliwić procesowi budowania żądanie podania hasła, możesz dodać właściwości hasła do pliku ant.properties:

mrówka.Właściwości

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

Dla mojego konkretnego projektu, fałszywy hasło magazynu kluczy jest zapisany w ant.properties i jestem zastępując go z hasłem uwolnienia kluczy na czas budowy:

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 

Dzięki temu nasze hasło do magazynu kluczy do przechowywania może być ukryte w innym miejscu. Powodzenia!

2

Strzeż Komunikat błędu:

Niewłaściwy key.store.password prowadzi do:

Keystore został naruszony lub hasło jest nieprawidłowe: Hasło weryfikacja nie powiodła

Zważywszy złym key.alias.password prowadzi do:

Nie można klucz

Dla Everone którzy sprawdzane tylko sklepu-hasło keytool -v -list mykeystore.keystore i nigdy verfied się alias.password odzyskać.

Powiązane problemy