ข้อผิดพลาดของแอปพลิเคชัน: แอปพลิเคชันเวอร์ชันนี้ไม่ได้กำหนดค่าสำหรับการเรียกเก็บเงินตามราคาตลาด


91

เนื่องจากสองสามวันนี้เป็นไปได้ที่จะใช้การเรียกเก็บเงินในแอปในแอป Android เจ๋งมากแน่นอน ดังนั้นฉันจึงเริ่มทำการอัปเดตแอปพลิเคชันของฉันเพื่อใช้งานสิ่งนี้ แต่ตอนนี้ฉันประสบปัญหาบางอย่าง นี่คือสิ่งที่ฉันทำ:

  • ก่อนอื่นฉันลองใช้รหัสผลิตภัณฑ์ที่สงวนไว้เพื่อทดสอบการตอบกลับการเรียกเก็บเงินในแอปแบบคงที่ ที่ใช้งานได้โดยไม่มีปัญหา
  • ฉันอัปโหลด APK ฉบับร่างไปยังตลาด (ด้วยการลงนามการผลิตไม่มีการลงนามการแก้ปัญหา) ซึ่งรวมถึงสิทธิ์ com.android.vending.BILLING
  • เมื่อฉันทำเช่นนั้นฉันสามารถเพิ่ม "ผลิตภัณฑ์ที่ซื้อในแอป" ลงในแอปของฉันในตลาดและตั้งสถานะเป็นเผยแพร่ได้
  • ฉันสร้างผู้ใช้ทดสอบและรีเซ็ตอุปกรณ์ของฉันเพื่อให้ผู้ใช้ทดสอบนั้นเป็นบัญชีหลักในอุปกรณ์ทดสอบของฉัน
  • รหัสผลิตภัณฑ์ที่จองไว้ยังใช้งานได้

ตอนนี้มาถึงปัญหา เมื่อฉันใช้รหัสผลิตภัณฑ์ของตัวเอง (รหัสที่ฉันเพิ่มไว้ก่อนหน้านี้ดูด้านบน) กล่องโต้ตอบจะปรากฏขึ้นพร้อมข้อความต่อไปนี้:

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

ไม่มีอะไรแปลก ๆ ที่ฉันพบในบันทึก มีใครรู้บ้างว่าฉันทำอะไรผิดที่นี่?

คำตอบ:


157

ฉันเพิ่งพบปัญหานี้และตระหนักว่าเป็นเพราะฉันใช้แอปเวอร์ชันดีบักที่ไม่ได้ลงชื่อ ใน Eclipse เมื่อฉันส่งออกและลงนามแอปพลิเคชันของฉันและติดตั้งบนโทรศัพท์ฉันก็สามารถใช้ผลิตภัณฑ์ที่ซื้อในแอปได้โดยไม่เห็นข้อความแสดงข้อผิดพลาดนี้


8
เวอร์ชันดีบักใช้ได้ แต่ต้องลงนาม
Barry Fruitman

1
จำเป็นไหมในการเผยแพร่แอปเพื่อทดสอบไอเท็ม inApp ฉันได้เผยแพร่รายการที่ไม่เหมาะสมและยังคงไม่เผยแพร่แอป ฉันขอโทษหากคำถามไร้สาระหรือไม่เกี่ยวข้อง
Jana

@ jana ไม่จำเป็นต้องเผยแพร่แอปสำหรับการทดสอบในแอป แต่ใช่จำเป็นต้องเผยแพร่ผลิตภัณฑ์ที่ซื้อในแอปเพื่อเผยแพร่อย่างอื่นคุณจะได้รับข้อผิดพลาดบนอุปกรณ์ของคุณขณะทดสอบผลิตภัณฑ์ที่ซื้อในแอป "ไม่พบรายการ "
Usman Kurd

21
สิ่งสำคัญที่ควรทราบก็คือเช่นเดียวกับในคำตอบอื่น ๆ - รหัสเวอร์ชันของแอปทดสอบของคุณต้องตรงกับรหัสเวอร์ชันของฉบับร่างใน Google Play ดังนั้นหากคุณเริ่มต้นด้วยตัวยึด v1 ใน Google Play ให้เตรียมแอปจริงเป็น v2 - แอปจริงนั้นจะต้องอัปโหลดไปยัง GP ในรูปแบบร่างก่อนจึงจะสามารถทดสอบได้เสร็จสิ้น
Steve Haley

1
มีการเปลี่ยนแปลงเมื่อเร็ว ๆ นี้และตอนนี้คุณต้องเผยแพร่แอปของคุณไปยังช่องอัลฟาบน Google Play ก่อนที่จะทำการทดสอบ IAP ต่อไป
tenpn

43

ฉันพบว่าเมื่อฉันอัปโหลดสำเนา APK ใหม่ไปยังตลาดแล้วฉันพบ "ข้อผิดพลาดของแอปพลิเคชัน" นั้นในระหว่างชั่วโมงถัดไป หลังจากเวลาผ่านไปอย่างน้อยหนึ่งชั่วโมง (บางครั้งต้องใช้เวลาถึงสองชั่วโมง) ฉันก็จะไม่ได้รับข้อผิดพลาดนั้นอีกต่อไปและฉันสามารถซื้อสินค้าได้โดยไม่มีปัญหา ดูเหมือนว่าเซิร์ฟเวอร์ของ Google ต้องใช้เวลาอย่างน้อยหนึ่งชั่วโมงในการประมวลผลข้อเท็จจริงที่ว่าคุณได้อัปโหลด APK ใหม่ (เกี่ยวกับการเรียกเก็บเงิน InApp ของ APK)

ดังนั้นคำแนะนำของฉันคือให้คุณรอ 1 ถึง 2 ชั่วโมงหลังจากอัปโหลด APK ของคุณแล้วดูว่าคุณยังคงได้รับ "ข้อผิดพลาดของแอปพลิเคชัน" หรือไม่


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

4
ฉันจะสองสิ่งนั้น: มันใช้งานได้สำหรับฉันด้วยที่ต้องรอสองสามชั่วโมง (จริงๆแล้วรอข้ามคืนดังนั้นฉันไม่รู้เวลาที่แน่นอน) เนื่องจากเป็นความคิดเห็นของกองบรรณาธิการเล็กน้อย Google ไม่สามารถให้ข้อความแสดงข้อผิดพลาดที่แม่นยำกว่านี้ได้และช่วยเราทุกคนไม่ให้เดือดร้อน
M Katz

หมายความว่าฉันเป็นผู้ใช้แอปเวอร์ชันเก่ากว่าปัจจุบันใช้การซื้อในแอปไม่ได้และต้องอัปเดตแอปก่อนใช่หรือไม่
Kedu

34

ฉันยังพบปัญหานี้ ในที่สุดฉันก็รู้ว่าแอปที่เผยแพร่ของฉันมี versionCode เป็น 3 ร่างของฉัน (apk ที่ไม่ได้เผยแพร่โดยได้รับอนุญาตการเรียกเก็บเงิน) มี versionCode เท่ากับ 4 และ apk ที่ลงชื่อฉันใช้เพื่อทดสอบการเรียกเก็บเงินในแอปยังคงอยู่ที่ versionCode 3 เมื่อฉัน เปลี่ยน versionCode เป็น 4 ฉันสามารถผ่านไปยังหน้าผลิตภัณฑ์ในแอปจริงสำหรับการซื้อที่ฉันขอได้


22

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

สิ่งที่น่ากังวลมากคือเราจะเห็นพฤติกรรมเดียวกันนี้ในการใช้งานจริงกล่าวคือเราปล่อย 1.0.0-1 พร้อมกับการเรียกเก็บเงินในแอปจากนั้นเราจะปล่อย 1.0.0-2 และผู้ใช้ที่ใช้ 1.0.0-1 จะเป็น ไม่สามารถซื้อหรือเรียกคืนการซื้อของพวกเขาได้และจะได้รับข้อผิดพลาดเดียวกัน (ประสบการณ์การใช้งานที่แย่มาก) ได้รับการกำจัดเอกสารเพื่อกล่าวถึงพฤติกรรมนี้เฉพาะสำหรับโหมดทดสอบ แต่ยังไม่มีโชค เราได้เพิ่มข้อบกพร่องที่นี่: http://code.google.com/p/marketbilling/issues/detail?id=15#c0


3
+1 สำหรับข้อมูลเพิ่มเติมการคิดไปข้างหน้าและลิงค์ไปยังกระทู้จุดบกพร่อง
Bill The Ape

14

ฉันยังพบปัญหาเดียวกัน ... แต่ตอนนี้ปัญหาได้รับการแก้ไขแล้ว

การสังเกตของฉันจากการทดลองเล็กน้อย:

  1. รหัสเวอร์ชันควรตรงกันทั้งบน Google Play และอุปกรณ์
  2. แม้ว่าเวอร์ชันจะตรงกัน แต่เราอาจยังคงได้รับข้อผิดพลาดนี้
  3. รอประมาณ 1 ถึง 2 ชั่วโมงจากนั้นลองเราจะไม่ได้รับข้อผิดพลาดนี้

หวังว่านี่จะช่วยได้


1
ฉันยังค้นพบว่ารหัสเวอร์ชันควรตรงกัน อย่างน้อยเวอร์ชันทดสอบของคุณต้องไม่สูงกว่าเวอร์ชันบน Google Play ฉันไม่แน่ใจว่าวิธีอื่นเป็นจริงหรือไม่ ฉันหวังว่าจะไม่เพราะนั่นหมายความว่าผู้ที่มีแอปพลิเคชันเวอร์ชันเก่าจะไม่สามารถใช้การเรียกเก็บเงินในแอปของฉันได้
Peter Fortuin

# 3 เป็นเคล็ดลับ. หากคุณแน่ใจว่าทุกอย่างเรียบร้อยแล้วให้หยุดพักและลองใหม่ภายหลัง ต้องใช้เวลาสักพักในการอัปเดต :)
nuala

7

คัดลอกมาจากคำถามที่ซ้ำกัน: https://stackoverflow.com/a/22469253/1321401

ข้อผิดพลาดนี้อาจเกิดขึ้นจากหลายสาเหตุ
นี่คือรายการข้อกำหนดสำหรับการทดสอบ Google IAB

ข้อกำหนดเบื้องต้น:

  1. AndroidManifest ต้องมี"ป" ได้รับอนุญาต
  2. เอพีเคถูกสร้างขึ้นในโหมดการเปิดตัว
  3. เอพีเคมีการลงนามกับใบรับรองลีส (s)
  4. APK ถูกอัปโหลดไปยังช่องทางการเผยแพร่อัลฟ่า / เบต้า (ก่อนหน้านี้เป็นแบบร่าง) ไปยังคอนโซลนักพัฒนาซอฟต์แวร์อย่างน้อยหนึ่งครั้ง (ใช้เวลาประมาณ 2 ชม. - 24 ชม .)
  5. IAB ผลิตภัณฑ์ที่มีการตีพิมพ์และสถานะของการตั้งค่าเพื่อใช้งาน
  6. มีการเพิ่มบัญชีทดสอบในคอนโซลนักพัฒนาซอฟต์แวร์

ข้อกำหนดการทดสอบ:

  1. APK ทดสอบมีversionCode เดียวกับเวอร์ชันที่อัปโหลดไปยังคอนโซลนักพัฒนาซอฟต์แวร์
  2. APK ทดสอบลงนามด้วยใบรับรองเดียวกันกับที่อัปโหลดไปยัง dev.console
  3. บัญชีทดสอบ (ไม่ใช่ผู้พัฒนา) - เป็นบัญชีหลักบนอุปกรณ์

ป.ล. : การดีบักพร้อมใบรับรองการเผยแพร่ : https://stackoverflow.com/a/15754187/1321401 (Thnx @dippสำหรับลิงค์)

PPS: อยากทำรายการนี้มานานแล้ว

Thnx @zlgdevสำหรับการอัปเดต


1
versionCode มีฉัน - ทำไมจึงจำเป็น?
slott

5

วิธีแก้ปัญหาของฉันคือฉันต้องใช้คีย์เดียวกันเพื่อลงนาม apk ใน Market (เป็น APK แบบร่าง) และในการทดสอบ ดังนั้นแทนที่จะเรียกใช้แอปพลิเคชันฉันมักจะต้องส่งออก APK ที่ลงชื่อด้วยการอัปเดตทุกครั้งถอนการติดตั้งและติดตั้งใหม่ในอุปกรณ์โดยใช้คำสั่งบรรทัดคำสั่ง apk โดยหลักการแล้วคุณสามารถใช้ที่เก็บคีย์ของคุณเองเป็นที่เก็บคีย์การดีบักได้เช่นกัน แต่ต้องใช้รหัสผ่านและชื่อรหัสเฉพาะสำหรับคีย์


0

คิดว่าฉันจะแบ่งปันอีกหนึ่งวิธีแก้ปัญหาที่เป็นไปได้หากคุณได้รับข้อผิดพลาดนี้ เดิมฉันอัปโหลด apk ฉบับร่างไปยัง Google โดยเปิดใช้งานสิทธิ์การเรียกเก็บเงินดังนั้นฉันจึงสามารถตั้งค่าในแอปที่ซื้อได้ ต่อมาฉันได้อัปโหลด apk อื่นโดยไม่มีสิทธิ์ในการเรียกเก็บเงินจาก AndroidManifest ของฉันซึ่งส่งผลให้เกิดข้อผิดพลาด ดูเหมือนจะเป็นกรณีที่ไม่น่าเกิดขึ้นอย่างแน่นอน แต่มันเกิดขึ้นสำหรับฉันดังนั้นจึงเป็นไปได้

แก้ไข: ในครึ่งหน้าเดียวกันหากเวอร์ชันที่คุณส่งเป็นแบบร่างไปยัง Google ไม่ได้ลงนามข้อผิดพลาดก็จะเกิดขึ้นเช่นกัน


0

ในการทุ่มสองเซ็นต์ของฉันฉันสามารถทดสอบได้โดยการอัปโหลดเป็นเวอร์ชันเบต้าและสร้างบัญชี Gmail ด้วยการทดสอบการเข้าถึงภายใต้แท็บการตั้งค่าด้วยแอปเวอร์ชันใหม่ของฉัน ...

ตอนนี้ฉันย้ายไปที่การผลิต ...

ขอบคุณ! นาธาน


-2

กระทู้เก่า แต่เพิ่มอรรถรส ...

ฉันติดตั้ง apk ที่มี versionCode 1 สูงกว่าในร้านค้า เล่นใน 2 บัญชีที่แตกต่างกันบน Nexus 7 ของฉันและประสบปัญหานี้ ดังนั้นฉันจึงถอนการติดตั้งและติดตั้งใหม่จากร้านค้าเพื่อให้แน่ใจว่า versionCode ตรงกัน แม้จะรอข้ามคืนข้อผิดพลาดก็ไม่ชัดเจน

ปรากฎว่าฉันต้องถอนการติดตั้งจากบัญชี Google ทั้ง 3 บัญชีที่ฉันผูกไว้กับ Nexus 7 มันกู้คืนได้เมื่อฉันถอนการติดตั้งแอปอย่างชัดเจนจากทั้งสามบัญชีใน nexus 7 ของฉันแล้วติดตั้งใหม่จากร้านค้า

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