keytool hatası: java.io.IoException: Hatalı AVA biçimi


179

Android geliştirmede yeniyim; uygulamayı imzalamaya çalışırken aşağıdaki hatayı aldım. Biri bana bu konuda yardımcı olabilir mi?

keytool error :java.io.IoException:Incorrect AVA format

Forumlarda bir çözüm buldum, örneğin çalıştırmam gerekiyor debug.keystoreama başarılı olamadım.



Yanıtlar:


476

Muhtemelen İsim, Organizasyon veya başka bir yere yasadışı karakter (virgül (virgül) gibi) girdiniz.

Tabii ki gerçekten isterseniz bazı işaretçiler \ sign ile kaçabilir


21
Sadece FYI, eğer gerçekten bir alanda virgül istiyorsanız, örneğin Acme \, Inc gibi bir ters eğik çizgi ile kaçabilirsiniz . Bkz. Docs.oracle.com/javase/6/docs/technotes/tools/solaris/… . Bu, Eclipse IDE'nin imzalama iletişim kutusunda da çalışır.
Yojimbo

1
Benim için "Organizasyon" alanındaki + işaretiydi. Ters eğik çizgiyle başlamak hile yaptı, teşekkürler Yojibmo!
Chad Schultz

4
Vay be, bunu anlamaya çalışarak günler geçirebilirdim ve bu benim organizasyonumun adında bir virgüldü ("..., LLC" kullandım). Bir ton teşekkürler.
akousmata

+1 Bu kabul edilen cevap olmalıdır. Ayrıca, kullanıcı dışa aktarma sihirbazının (virgül) (,) veya özel bir karakter girmesi durumunda, kullanıcının izin vermesi gereken belirli bir metin kutusunu bilmesi veya işaret etmesi gerektiğini lütfen kontrol edin.
Zubair Ahmed

1
Benim için sorun ülke koduydu. "+1" koydum ve görünüşe göre + istisnayı artırıyordu.
Donato

51

Eclipse ADT ile imzalı bir .apk dosyasını dışa aktarmaya çalışırken bir hatayla karşılaştım. Hata, hatanızla aynıydı. Benim durumumda, ülke kodundan önce bir + işareti kullandım. Bu addan + işaretini kaldırarak sorun giderildi ve imzalı .apk dosyamı tamamen dışa aktarmama izin verdi. Ayrıca, bu hata virgül, eğik çizgi, noktalı virgül, tırnak kullanıldığında ortaya çıkabilir.


Teşekkürler. '+' İşaretini de kullandım. )
DmitryKanunnikoff

Teşekkürler. Bu, ülke kodunda + kullandığım sorunumu çözdü
Khizar Hayat

20

Apk dışa aktarırken özel karakterler kullanmaya çalıştınız. Apk oluştururken gösterilen hiçbir alanda bu özel karakterleri kullanamazsınız. Özel karakter seti şunları içerir:

  • Virgül (,)
  • Toplama sembolü (+)
  • Tırnak işareti (")
  • Ters eğik çizgi ("\")
  • Açılı ayraçlar (<ve>)
  • Noktalı virgül (;)

7

Ülke kodunu değiştirerek bu istisnayı çözdüm:

+91 için India


Bu alan için iso 3166-1 ülke kodunu kullanmalısınız, sizin durumunuzda "IN"
PassKit

6

Ayırt edici ad seçeneğini hiç ayarlamadığımda bu hatayla karşılaştım. Bu, seçenek geçerli olarak biçimlendirilmiş bir dizeye ayarlanarak düzeltildi.

bu komut AVA biçimi istisnasıyla başarısız oldu: (okunabilirlik için satır sonları eklendi)

C:\Program Files\Java\jdk1.6.0_45\jre\bin>keytool 
-genkey -v -dname PatrickTaylor -validity 10000 
-keystore C:\drops\patrickkeystore 

bu komut başarıyla tamamlandı:

C:\Program Files\Java\jdk1.6.0_45\jre\bin>keytool 
-genkey -v -dname PatrickTaylor -validity 10000 
-keystore C:\drops\patrickkeystore 
-dname "cn=Patrick Taylor, ou=engineering, o=company, c=US"

4

Bu "Muhtemelen İsim, Organizasyon veya başka bir yere yasadışı karakter (virgül gibi) girdiniz." benim için çalıştı. Eyalet veya eyalette virgül vardı. lütfen bu cevabı kural olarak cevap olarak işaretleyin; +91'deki + gibi özel bir karakterdir.


benim için hata, şirket adı ve llc arasındaki virgülden kaynaklandı. (teşekkür ederim kingsley sithole).
tmr

1

Özel karakter / tüm iyi cevaplardan kaçmak / sorun olabilir; doğru bir yanıt vermek için gerçek "keytool" komut satırınızı paylaşmadınız. Bir pub / priv anahtar çifti ("-genkeypair" param) oluşturmaya çalışıyorsanız, 1 sorun, sertifika konusu ayırt edici adının (" -dname " arg) doğru X.500 AVA'da belirtilmemiş olması olabilir (" A ttribute- V alue- A ssertion") biçimi. Örneğin, konunun ortak adının (CN) önünde "CN =" atlanması. Param şöyle görünmelidir:

keytool ... -dname="CN=SomeCertSubject" ...

Bu ayırt edici ad parametresinde " CN " ("Ortak Ad") " A ttribute", " SomeCertSubject " " V alue " dur .


0

Google "Geçersiz Karakter" diyemez. Bunun yerine, "Hatalı AVA biçimi" diyorlar Alfasayısal olmayan karakterleri, aksanları ve garip harfleri yok edin.


lütfen doğru cevapları verin!
Amanuel Nega
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.