kesalahan keytool: java.io.IoException: Format AVA salah

179

Saya baru mengenal pengembangan Android; ketika saya sudah mencoba untuk menandatangani aplikasi saya telah mendapat kesalahan berikut. Adakah yang bisa membantu saya dalam masalah ini?

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

Saya telah menemukan beberapa solusi di forum, misalnya saya perlu menjalankan debug.keystoretetapi saya tidak berhasil.

pallavi
sumber

Jawaban:

476

Mungkin Anda memasukkan karakter ilegal (seperti, (koma)) di bidang Nama, Organisasi, atau tempat lain.

Tentu saja jika Anda benar-benar ingin beberapa charachter dapat lolos dengan \ tanda

aturan
sumber
21
Hanya FYI, jika Anda benar-benar menginginkan koma di bidang, Anda dapat menghindarinya dengan backslash terkemuka, misalnya Acme \, Inc. Lihat docs.oracle.com/javase/6/docs/technotes/tools/solaris/… . Ini juga berfungsi dalam dialog penandatanganan Eclipse IDE.
Yojimbo
1
Bagi saya, itu tanda + di bidang "Organisasi". Memulai dengan backslash berhasil, terima kasih Yojibmo!
Chad Schultz
4
Wow, saya bisa menghabiskan waktu berhari-hari untuk mencari tahu ini, dan itu adalah koma dalam nama organisasi saya (saya menggunakan "..., LLC"). Terima kasih banyak.
akousmata
+1 Ini harus menjadi jawaban yang diterima. Juga harus ada tanda centang ketika pengguna memasukkan (koma) (,) atau karakter khusus yang diminta oleh panduan ekspor agar pengguna tahu atau menunjuk ke kotak teks tertentu yang tidak boleh diizinkan, harap ubah.
Zubair Ahmed
1
Masalahnya bagi saya adalah kode negara. Saya menaruh "+1" dan ternyata tanda + memunculkan pengecualian.
Donato
50

Saya menghadapi kesalahan saat mencoba mengekspor file .apk yang ditandatangani dengan Eclipse ADT. Kesalahannya sama seperti kesalahan Anda. Dalam kasus saya, saya menggunakan tanda + sebelum kode negara. Dengan menghapus tanda + dari nama ini memperbaiki masalah dan memungkinkan saya untuk sepenuhnya mengekspor file .apk saya yang ditandatangani. Juga, kesalahan ini dapat terjadi ketika menggunakan koma, garis miring, semi-kolon, kutipan.

Ratna Halder
sumber
Terima kasih. Saya menggunakan tanda '+' juga. )
DmitryKanunnikoff
Terima kasih. Ini memecahkan masalah saya, saya menggunakan + dalam kode negara
Khizar Hayat
20

Anda mencoba menggunakan karakter khusus saat mengekspor apk. Anda tidak dapat menggunakan karakter khusus ini di bidang apa pun yang ditampilkan saat membuat apk. Set karakter khusus meliputi:

  • Koma (,)
  • Simbol penambahan (+)
  • Tanda kutip (")
  • Back-slash ("\")
  • Kurung miring (<dan>)
  • Semi-kolon (;)
surhidamatya
sumber
7

Saya memecahkan Pengecualian ini dengan mengubah kode negara:

+91 untuk India

Steve
sumber
Untuk bidang ini, Anda harus menggunakan kode negara iso 3166-1 , dalam kasus Anda "IN"
PassKit
6

Saya datang pada kesalahan ini ketika saya tidak mengatur opsi nama dibedakan sama sekali. Ini dikoreksi dengan mengatur opsi ke string yang diformat secara valid.

perintah ini gagal dengan pengecualian format AVA: (jeda baris ditambahkan untuk keterbacaan)

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

perintah ini berhasil diselesaikan:

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"
Patrick
sumber
4

ini "Mungkin Anda memasukkan karakter ilegal (seperti, (koma)) di bidang Nama, Organisasi, atau tempat lain." bekerja untuk saya. Saya memiliki koma di negara bagian atau provinsi. tandai jawaban ini menurut aturan sebagai jawabannya; as + in +91 adalah karakter khusus.

sithole kingsley
sumber
bagi saya, kesalahan itu disebabkan oleh koma antara nama perusahaan dan llc. (Terima kasih sithole kingsley).
tmr
1

Karakter khusus / lolos dari semua jawaban yang baik / bisa menjadi masalah; Anda tidak membagikan baris perintah "keytool" Anda yang sebenarnya sehingga lebih sulit untuk memberikan jawaban yang akurat. Jika Anda mencoba membuat pasangan pub / priv key pair ("-genkeypair" param), maka 1 masalah adalah subjek sertifikat itu membedakan nama (" -dname " arg) tidak ditentukan dalam AVA X.500 yang benar (" A ttribute- V alue- A ssertion") format. Misalnya, menghilangkan "CN =" di depan nama umum subjek (CN). Param akan terlihat seperti ini:

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

Dalam param nama yang dibedakan ini, " CN " ("Common Name") adalah " A ttribute", " SomeCertSubject " adalah " V alue".

pengguna1172173
sumber
0

Tidak dapat google mengatakan "Karakter Tidak Valid". Sebagai gantinya, mereka mengatakan "Format AVA tambahan" Hapus semua karakter non-alfanumerik, tanpa aksen dan tidak ada huruf aneh.

Josh
sumber
tolong berikan jawaban yang tepat!
Amanuel Nega