Dieser Fehler kann verschiedene Gründe haben.
Hier ist die Liste der Anforderungen für die Google IAB-Tests.
Voraussetzungen:
- AndroidManifest muss die Berechtigung "com.android.vending.BILLING" enthalten .
- APK ist im Release-Modus gebaut .
- APK ist mit den Freigabezertifikaten signiert . (Wichtig: Mit "App Signing by Google Play" funktioniert es nur, wenn Sie direkt aus dem GooglePlayStore herunterladen!)
- APK wird mindestens einmal in den Alpha / Beta-Vertriebskanal (zuvor als Entwurf) auf die Entwicklerkonsole hochgeladen . (dauert einige Zeit ~ 2h-24h ).
- IAB- Produkte werden veröffentlicht und ihr Status auf aktiv gesetzt .
- Testkonten werden in der Entwicklerkonsole hinzugefügt .
Testanforderungen:
- Test APK hat denselben Versionscode wie der auf die Entwicklerkonsole hochgeladene.
- Test APK ist mit denselben Zertifikaten signiert wie das auf dev.console hochgeladene.
- Testkonto (kein Entwickler) - ist das Hauptkonto auf dem Gerät. ( Hauptkonto ist möglicherweise nicht erforderlich - laut @ MinosL- Kommentar)
- Das Testkonto ist als Tester aktiviert und mit einer gültigen Zahlungsmethode verknüpft . ( @Kyone )
PS: Debuggen mit Release-Zertifikat : https://stackoverflow.com/a/15754187/1321401 (Thnx @dipp für den Link)
PPS: Wollte diese Liste schon lange machen.
Danke @zlgdev , @Kyone , @MinosL für Updates
Ahh fand die Lösung, nachdem er es ein paar Stunden lang versucht hatte.
quelle
Das gleiche passiert, wenn Ihre veröffentlichte Version nicht mit der Version übereinstimmt, die Sie auf Ihrem Telefon testen.
Die hochgeladene Version ist beispielsweise
android:versionCode="1"
und die Version, die Sie auf Ihrem Telefon testen, istandroid:versionCode="2"
quelle
android:versionCode="1"
und das Telefon inandroid:versionCode="2"
Ordnung ist oder ich meine apk google play ändern muss?Sie müssen Ihre APK mit Ihrem Live-Zertifikat unterschreiben. Installieren Sie das dann auf Ihrem Testgerät. Anschließend können Sie InAppBilling testen. Wenn Sie Ihre Anwendung durch direkte Ausführung über Eclipse to Device (im Debug-Modus) testen, wird dieser Fehler angezeigt.
Wenn Sie
android.test.purchased
als SKU verwenden, funktioniert dies vollständig, aber Ihre endgültige Antwort enthält nicht die DeveloperPayload.Wenn Sie Ihren eigenen Entwurf in einem App-Element verwenden, können Sie den gesamten Test durchführen, aber Sie werden belastet und müssen ihn anschließend selbst zurückerstatten.
Sie können keine Artikel mit demselben Google Mail-Konto kaufen, das Sie für die Google Play-Entwicklungskonsole verwenden.
quelle
In der Entwicklerkonsole:
Settings
->Account details
->License Testing
-> Google Mail-Konten mit Testzugriffund geben Sie hier Ihre Konten ein
quelle
Wenn Sie ab 2018 hier sind, müssen Sie die APK direkt aus dem Play Store herunterladen und die "abgeleitete" APK installieren. Vielleicht liegt es daran, dass Googles Play Store eine Funktion "App Signing by Google Play" hat.
quelle
Dies wird passieren, wenn Sie eine andere Version der apk als die in Google Play verwenden.
quelle
Lassen Sie mich nur hinzufügen, was mit mir passiert ist, kann jemandem helfen.
Es war hauptsächlich auf die Unterzeichnung zurückzuführen.
Da ich die Signaturdetails in die Projektstruktur aufgenommen habe, dachte ich, dass jedes Mal, wenn ich laufe, die erwartete signierte apk installiert wird. Es wurde jedoch der Build-Typ 'Debug' ausgewählt.
Das unten stehende Update hat das Problem für mich gelöst.
quelle
In meinem Fall habe ich die gleiche Nachricht aufgrund der unterschiedlichen Signaturen der installierten apk und einer auf den Markt hochgeladenen apk gesehen.
quelle
Im Gegensatz zu vielen Antworten und Kommentaren auf SO und anderen Websites müssen Sie KEINE Vorversuche mit einer Alpha / Beta-Version Ihres Produkts durchführen, die von Google Play auf Ihr Testgerät heruntergeladen wurde (der Alpha / Beta-Veröffentlichungsprozess ist häufig aufwendig einen halben Tag). Sie müssen auch keine signierte Release-Apk von Ihrem Entwicklerstudio auf Ihr Testgerät laden und erneut laden.
Sie können vorläufiges Google Play in App-Abrechnungsdiensten mit der Debug-App debuggen, die von Ihrem Entwicklerstudio über ADB direkt auf Ihr Testgerät geladen wurde. Wenn Fehler auftreten, die dies verhindern, haben Sie wahrscheinlich einen Fehler in Ihrem Code gemacht. Achten Sie besonders auf den FALL Ihrer SKUs (Produkt-IDs) und deren Format (wenn Sie beispielsweise Ihre APK als com.mydomain.my_product_id laden, stellen Sie sicher, dass Sie versuchen, sie auf diese Weise zu kaufen - unter Angabe des gleichen Falls und der gleichen Domain). . Achten Sie außerdem besonders auf Ihren itemType - dies sollte entweder "inapp" oder "subs" für verwaltete / nicht verwaltete App-Käufe bzw. Abonnements sein.
Führen Sie, wie von Chirag Patel vorgeschlagen, während Ihrer Vorversuche alle Tests mit dem Skand android.test.purchased (Produkt-ID) durch, sofern Ihr Abrechnungscode ordnungsgemäß festgelegt wurde. Überprüfen Sie diese ID während Ihrer Abrechnungsvorgänge, um sie durch Signatur-, Token- und Nutzlastprüfungen zu führen, da diese Daten nicht vom Google-Testsystem bereitgestellt werden. Geben Sie einem Ihrer Testprodukte zusätzlich diese ID, um den Kauf, das Entsperren / Laden und die Präsentation des gesamten Programms zu testen. Um den Kauf zu löschen, verbrauchen Sie ihn einfach und übergeben Sie denselben Sku UND eine so formatierte Token-Zeichenfolge. Keine anderen Felder sind relevant:
Wenn Sie diese Testphase abgeschlossen haben, wechseln Sie mit Ihrem Alpha / Beta-Produkt zum Semi-Live-Test. Erstellen Sie eine Google-Gruppe (im Wesentlichen eine Mailingliste), fügen Sie E-Mails Ihrer Testbenutzer hinzu und fügen Sie diese Gruppe hinzu / laden Sie sie ein, Ihr Gerät in dieser Phase zu testen (durchgeführt im Abschnitt "APK" der Google-Entwicklerliste Ihrer App). Einkäufe werden simuliert, aber nicht tatsächlich in Rechnung gestellt. Um die Einkäufe jedoch zu löschen und erneut zu testen, gibt Google an, dass Sie sie von Ihrer Google-Brieftasche zurückerstatten müssen. Dies ist die einzige Testphase, die den zeitaufwändigen Prozess der Verwendung von Alpha / Beta-Ladevorgängen und Testbenutzern erfordert.
quelle
Wenn Sie IAB debuggen möchten, müssen Sie Folgendes tun:
Senden Sie eine Version Ihrer App mit der IAB-Berechtigung für das Manifest an Google Play:
Fügen Sie Ihrer App bei Google Play ein Produkt hinzu: Verwalten der In-App-Abrechnung
Festlegen eines benutzerdefinierten Debug-Keystores mit Signatur: Konfigurieren Sie Eclipse für die Verwendung des signierten Keystores
quelle
Hatte das gleiche Problem und es wurde nicht gelöst, bevor ich den Beitrag von DZDomi gelesen habe. Es stellte sich plötzlich heraus, dass in der Google Developer Console eine Einstellung vorhanden ist, die Sie aktivieren müssen. Im Abschnitt "In App-Käufen" gibt es eine Zeile für Ihr Produkt und ganz rechts einen Status dafür. Es sollte AKTIV sein!
quelle
Mein Problem war, dass ich versucht habe, es mit dem debug.keystore zu überprüfen, ich meine, es durch eclipse auszuführen. Ich habe es mit dem Keystore exportiert, mit dem ich im Alpha-Modus veröffentlicht habe (es muss veröffentlicht werden, bevor Sie es testen können) .installiert in mein Telefon und dann konnte ich es normal testen.
quelle
Das Problem tritt auch auf, wenn Sie nach dem Hochladen der apk einen In-App-Kauf hinzugefügt haben, die Anwendung jedoch nicht im Play Store veröffentlicht haben (Alpha, Beta und Produktion).
Was im Grunde bedeutet, dass Sie den In-App-Kauf hinzufügen müssen, nachdem Sie die apk im Play Store veröffentlicht haben (Alpha, Beta und Produktion). Andernfalls können Sie den In-App-Kauf nicht kaufen oder abfragen.
quelle
Ein weiterer Grund, der hier nicht erwähnt wird, ist, dass Sie auf einem realen Gerät testen müssen. Da der Emulator wirklich gut wird, ist es leicht, einen Fehler zu machen.
quelle
Vor kurzem hat Google eine Änderung auf seinen Systemen implementiert. Da Sie mindestens eine APK auf Ihre Konsole hochgeladen haben, können Sie Ihre In-App-Anforderungen mit Ihrer App mit einem beliebigen Versionscode / einer beliebigen Versionsnummer testen.
Querverweis LINK
quelle
LÖSUNG
Warten Sie nach dem Hochladen Ihrer App im Play Store eine Weile, da Google einige Zeit benötigt, um die App-Versionen zu aktualisieren. Es wird funktionieren!
quelle
Ich habe das gleiche Problem in Moto C2 + in meinem Fall ist es ein Geräteproblem, sobald ich neu starte, dann wird es perfekt laufen ...
quelle