ข้อผิดพลาด keytool: java.io.IoException: รูปแบบ AVA ไม่ถูกต้อง


179

ฉันใหม่สำหรับการพัฒนา Android; เมื่อฉันพยายามลงชื่อสมัครใช้ฉันพบข้อผิดพลาดดังต่อไปนี้ ใครสามารถช่วยฉันในเรื่องนี้ได้บ้าง

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

ฉันพบวิธีแก้ไขปัญหาบางอย่างในฟอรัมเช่นฉันต้องเรียกใช้debug.keystoreแต่ฉันไม่ประสบความสำเร็จ



และสิ่งนี้: mortalpowers.com/news/…
tom_mai78101

คำตอบ:


476

อาจเป็นเพราะคุณป้อนอักขระผิดกฎหมาย (เช่นเครื่องหมายจุลภาค) ในฟิลด์สำหรับชื่อองค์กรหรือที่อื่น

แน่นอนถ้าคุณต้องการตัว charachter บางตัวที่สามารถหลบหนีด้วย \ sign


21
เพียง FYI ถ้าคุณต้องการจุลภาคในสนามจริงๆคุณสามารถหลบหนีด้วยเครื่องหมายชั้นนำเช่นแอค \, Inc ดูdocs.oracle.com/javase/6/docs/technotes/tools/solaris/... สิ่งนี้ยังทำงานในกล่องโต้ตอบการเซ็นชื่อของ Eclipse IDE
Yojimbo

1
สำหรับฉันมันเป็นเครื่องหมาย + ในช่อง "องค์กร" การเตรียมแบ็คสแลชนั้นเป็นการทำเคล็ดลับขอบคุณ Yojibmo!
ชาดชูลทซ์

4
ว้าวฉันอาจใช้เวลาหลายวันพยายามคิดเรื่องนี้และมันเป็นเครื่องหมายจุลภาคในชื่อองค์กรของฉัน (ฉันใช้ "... , LLC") ขอบคุณมาก
akousmata

+1 นี่คือคำตอบที่ได้รับการยอมรับ นอกจากนี้ควรมีการตรวจสอบเมื่อผู้ใช้ป้อน (เครื่องหมายจุลภาค) (,) หรืออักขระพิเศษตัวช่วยสร้างการส่งออกควรแจ้งให้ผู้ใช้ทราบหรือชี้ไปที่กล่องข้อความนั้นว่าไม่ควรอนุญาตโปรดเปลี่ยน
Zubair Ahmed

1
ปัญหาสำหรับฉันคือรหัสประเทศ ฉันใส่ "+1" และเห็นได้ชัดว่า + กำลังเพิ่มข้อยกเว้น
Donato

51

ฉันประสบข้อผิดพลาดขณะพยายามส่งออกไฟล์. apk ที่เซ็นชื่อด้วย Eclipse ADT ข้อผิดพลาดเหมือนกันกับข้อผิดพลาดของคุณ ในกรณีของฉันฉันใช้เครื่องหมาย + หน้ารหัสประเทศ การลบเครื่องหมาย + ออกจากชื่อนี้ช่วยแก้ไขปัญหาและทำให้ฉันสามารถส่งออกไฟล์. apk ที่ลงชื่อไว้ของฉันได้อย่างสมบูรณ์ นอกจากนี้ข้อผิดพลาดนี้อาจเกิดขึ้นเมื่อใช้เครื่องหมายจุลภาค, เครื่องหมายทับ, เซมิโคลอน, ใบเสนอราคา


ขอบคุณ ฉันใช้เครื่องหมาย '+' ด้วย )
DmitryKanunnikoff

ขอบคุณ วิธีนี้แก้ไขปัญหาของฉันฉันใช้ + ในรหัสประเทศ
Khizar Hayat

20

คุณพยายามใช้อักขระพิเศษขณะส่งออก apk คุณไม่สามารถใช้อักขระพิเศษเหล่านี้ในฟิลด์ใด ๆ ที่แสดงขณะสร้าง apk ชุดอักขระพิเศษประกอบด้วย:

  • เครื่องหมายจุลภาค (,)
  • สัญลักษณ์เพิ่มเติม (+)
  • เครื่องหมายคำพูด (")
  • แบ็กสแลช ("\")
  • วงเล็บเหลี่ยม (<และ>)
  • เซมิโคลอน (;)


6

ฉันพบข้อผิดพลาดนี้เมื่อฉันไม่ได้ตั้งค่าตัวเลือกชื่อที่แตกต่างเลย สิ่งนี้ถูกแก้ไขโดยการตั้งค่าตัวเลือกให้เป็นสตริงที่จัดรูปแบบอย่างถูกต้อง

คำสั่งนี้ล้มเหลวด้วยข้อยกเว้นการจัดรูปแบบ AVA: (เพิ่มตัวแบ่งบรรทัดสำหรับความชัดเจน)

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

คำสั่งนี้เสร็จสมบูรณ์แล้ว:

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

"คุณอาจป้อนอักขระผิดกฎหมาย (เช่น, (เครื่องหมายจุลภาค)) ในฟิลด์ชื่อ, องค์กรหรือที่อื่น" ทำงานให้ฉัน ฉันมีเครื่องหมายจุลภาคในรัฐหรือจังหวัด โปรดทำเครื่องหมายคำตอบนี้โดยกฎเป็นคำตอบ as + in +91 เป็นอักขระพิเศษ


สำหรับฉันข้อผิดพลาดเกิดจากเครื่องหมายจุลภาคระหว่างชื่อ บริษัท และ llc (ขอบคุณ kingsley sithole)
tmr

1

ตัวอักษรพิเศษ / หนีคำตอบที่ดี / อาจเป็นปัญหา คุณไม่ได้แชร์บรรทัดคำสั่ง "keytool" ที่แท้จริงดังนั้นจึงยากที่จะให้คำตอบที่ถูกต้อง หากคุณกำลังพยายามสร้างคู่คีย์ pub / priv ("-genkeypair" param) ดังนั้นปัญหาที่ 1 อาจเป็นได้ว่าชื่อที่แตกต่างของชื่อใบรับรอง (" -dname " arg) ไม่ได้ระบุไว้ใน X.500 AVA ที่ถูกต้อง (" A ttribute- V alue- A ssertion") รูปแบบ ตัวอย่างเช่นการละเว้น "CN =" ด้านหน้าชื่อเรื่องทั่วไป (CN) Param ควรมีลักษณะดังนี้:

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

ในชื่อของพระรามที่โดดเด่นนี้ " CN " ( "ชื่อสามัญ") คือ " ttribute", " SomeCertSubject " คือ " V alue"


0

google ไม่สามารถพูดว่า "ตัวละครไม่ถูกต้อง" แต่พวกเขาพูดว่า "รูปแบบรวม AVA" ตัดอักขระที่ไม่ใช่ตัวอักษรและตัวเลขออกไม่มีการเน้นเสียงและไม่มีตัวอักษรแปลก ๆ


โปรดให้คำตอบที่เหมาะสม!
Amanuel Nega
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.