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.



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


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.


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 (;)

7

Saya memecahkan Pengecualian ini dengan mengubah kode negara:

+91 untuk India


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"

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.


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".


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.


tolong berikan jawaban yang tepat!
Amanuel Nega
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.