Anwendungsfehler: Diese Version der Anwendung ist nicht für die Marktabrechnung konfiguriert


91

Seit einigen Tagen ist es möglich, die In-App-Abrechnung in Android-Apps zu verwenden. Sehr cool natürlich. Also begann ich an einem Update für meine Anwendung zu arbeiten, um dies zu implementieren. Aber jetzt habe ich einige Probleme. Das habe ich getan:

  • Ich habe zuerst die reservierten Produkt-IDs ausprobiert, um statische In-App-Abrechnungsantworten zu testen. Das funktioniert ohne Probleme.
  • Ich habe einen APK-Entwurf auf den Markt hochgeladen (mit Produktionssignatur, ohne Debug-Signatur), der die Berechtigung com.android.vending.BILLING enthielt.
  • Als ich das tat, konnte ich meiner App auf dem Markt ein In-App-Produkt hinzufügen und den Status auf "Veröffentlicht" setzen.
  • Ich habe einen Testbenutzer erstellt und mein Gerät zurückgesetzt, um diesen Testbenutzer zum primären Konto auf meinem Testgerät zu machen.
  • Die reservierte Produkt-ID funktioniert noch.

Jetzt kommt das Problem. Wenn ich meine eigene Produkt-ID verwende (die ich zuvor hinzugefügt habe, siehe oben), wird ein Dialogfeld mit folgendem Text angezeigt:

" Anwendungsfehler: Diese Version der Anwendung ist nicht für die Marktabrechnung konfiguriert. Weitere Informationen finden Sie in der Hilfe. "

Es gibt nichts Seltsames, das ich im Protokoll finden kann. Weiß jemand was ich hier falsch mache?

Antworten:


157

Ich bin gerade auf dieses Problem gestoßen und habe festgestellt, dass ich eine nicht signierte Debug-Version meiner App ausgeführt habe. Wenn ich in Eclipse meine Anwendung exportierte, signierte und auf dem Telefon installierte, konnte ich meine In-App-Produkte verwenden, ohne diese Fehlermeldung zu sehen.


8
Debug-Versionen sind in Ordnung, müssen jedoch signiert werden.
Barry Fruitman

1
Ist dies erforderlich, um die App zum Testen eines inApp-Elements zu veröffentlichen? Ich habe das Inapp-Element veröffentlicht und die App unveröffentlicht gelassen. Ich entschuldige mich, wenn die Frage albern oder nicht verwandt ist.
Jana

@ jana nein, es ist nicht erforderlich, eine App zum Testen in der App zu veröffentlichen, aber ja, es ist erforderlich, das zu veröffentlichende In-App-Produkt zu veröffentlichen. Andernfalls wird beim Testen des In-App-Produkts "Fehler nicht gefunden" auf Ihrem Gerät angezeigt "
Usman Kurd

21
Wie in einigen anderen Antworten ist es wichtig zu beachten, dass der Versionscode Ihrer Test-App mit dem Versionscode Ihres Entwurfs in Google Play übereinstimmen muss. Wenn Sie also mit einem Platzhalter v1 in Google Play begonnen haben, haben Sie die echte App als v2 vorbereitet. Diese echte App muss als Entwurf auf GP hochgeladen werden, bevor Sie sie testen können.
Steve Haley

1
Die Dinge haben sich kürzlich geändert, und Sie müssen Ihre App jetzt auf Google Play im Alpha-Kanal veröffentlichen, bevor die IAP-Tests fortgesetzt werden können.
Tenpn

43

Ich habe festgestellt, dass, sobald ich eine neue Kopie meiner APK auf den Markt hochlade, dieser "Anwendungsfehler" im Laufe der nächsten Stunde oder so auftritt. Nachdem mindestens eine Stunde vergangen ist (manchmal müssen bis zu zwei Stunden vergangen sein), wird dieser Fehler nicht mehr angezeigt und ich kann meine Artikel problemlos kaufen. Es scheint, dass die Google-Server mindestens eine Stunde benötigen, um die Tatsache zu verarbeiten, dass Sie eine neue APK hochgeladen haben (in Bezug auf den InApp Billing-Aspekt der APK).

Mein Rat ist also, dass Sie 1 bis 2 Stunden nach dem Hochladen Ihrer APK warten und dann prüfen, ob Sie immer noch den "Anwendungsfehler" erhalten.


Ich wollte nur noch einmal bestätigen, dass diese Antwort für mich funktioniert hat. Ich habe diesen Fehler erhalten - obwohl die App-Versionen korrekt waren. Ich habe nichts anderes getan, als ein paar Stunden zu warten, und es hat richtig funktioniert (ich habe den Fehler nicht wieder gesehen).
Booger

4
Ich werde das unterstützen: Es hat auch funktioniert, ein paar Stunden zu warten (tatsächlich über Nacht gewartet, damit ich den genauen Zeitpunkt nicht kenne). Als kleiner redaktioneller Kommentar ist es frustrierend, dass Google keine genauere Fehlermeldung dafür geben und uns allen viel Ärger ersparen kann.
M Katz

Bedeutet dies, dass ich Benutzer mit einer App-Version, die älter als die aktuelle ist, keine In-App-Käufe verwenden kann und die App zuerst aktualisieren muss?
Kedu

34

Ich bin auch auf dieses Problem gestoßen. Endlich wurde mir klar, dass meine veröffentlichte App einen Versionscode von 3 hatte, mein Entwurf (unveröffentlichtes Apk mit der Abrechnungsberechtigung) einen Versionscode von 4 hatte und das signierte Apk, das ich zum Testen der In-App-Abrechnung verwendete, noch bei VersionCode 3 war Wenn Sie den versionCode auf 4 geändert haben, konnte ich für den von mir angeforderten Kauf zur eigentlichen In-App-Produktseite gelangen.


22

Dies kann bei signierten, freigegebenen Builds passieren, wenn die als Entwurf hochgeladene Apk nicht mit der auf Ihrem System im Testmodus ausgeführten Apk übereinstimmt. Stellen Sie einfach sicher, dass Ihre Builds übereinstimmen. Sie sollten sich im Testmodus in Ordnung befinden und die Fehler nicht mehr sehen.

Die große Sorge hier ist, dass wir dasselbe Verhalten in der Produktion sehen werden, dh wir veröffentlichen 1.0.0-1 mit In-App-Abrechnung, dann veröffentlichen wir 1.0.0-2 und Benutzer, die 1.0.0-1 ausführen, werden es sein Der Kauf oder die Wiederherstellung der Käufe ist nicht möglich und es wird der gleiche Fehler angezeigt (sehr schlechte Benutzererfahrung). Ich habe die Dokumente durchsucht, um dieses Verhalten als spezifisch für den Testmodus zu erwähnen, aber bisher kein Glück. Wir haben hier einen Fehler hinzugefügt: http://code.google.com/p/marketbilling/issues/detail?id=15#c0


3
+1 für zusätzliche Informationen, vorausschauendes Denken und den Link zum Bug-Thread.
Bill The Ape

14

Ich bin auch auf das gleiche Problem gestoßen ... aber jetzt ist das Problem gelöst

Meine Beobachtungen basieren auf wenigen Versuchen:

  1. Der Versionscode sollte sowohl auf Google Play als auch auf dem Gerät übereinstimmen
  2. Auch wenn die Versionen übereinstimmen, wird dieser Fehler möglicherweise immer noch angezeigt
  3. Warten Sie etwa 1 bis 2 Stunden und versuchen Sie es dann. Dieser Fehler wird nicht angezeigt

Hoffe das hilft


1
Ich habe auch festgestellt, dass der Versionscode übereinstimmen sollte. Zumindest kann Ihre Testversion nicht höher sein als die bei Google Play. Ich bin mir nicht sicher, ob das Gegenteil auch zutrifft. Ich hoffe nicht, denn das würde bedeuten, dass Personen mit einer älteren Version der Anwendung meine In-App-Abrechnung nicht verwenden können.
Peter Fortuin

# 3 war der Trick. Wenn Sie sicher sind, dass alles in Ordnung ist, machen Sie eine Pause und versuchen Sie es später. Es braucht nur einige Zeit, um zu aktualisieren :)
Nuala

7

Von einer doppelten Frage kopiert: https://stackoverflow.com/a/22469253/1321401

Dieser Fehler kann aus mehreren Gründen auftreten.
Hier ist die Liste der Anforderungen für die Google IAB-Tests.

Voraussetzungen:

  1. AndroidManifest muss die Berechtigung "com.android.vending.BILLING" enthalten .
  2. APK ist im Release-Modus gebaut .
  3. APK ist mit den Freigabezertifikaten signiert .
  4. APK wird mindestens einmal in den Alfa / Beta-Vertriebskanal (zuvor als Entwurf) auf die Entwicklerkonsole hochgeladen . (dauert einige Zeit ~ 2h-24h ).
  5. IAB- Produkte werden veröffentlicht und ihr Status auf aktiv gesetzt .
  6. Testkonten werden in der Entwicklerkonsole hinzugefügt .

Testanforderungen:

  1. Test APK hat denselben Versionscode wie der auf die Entwicklerkonsole hochgeladene.
  2. Test APK ist mit denselben Zertifikaten signiert wie das auf dev.console hochgeladene.
  3. Testkonto (kein Entwickler) - ist das Hauptkonto auf dem Gerät.

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 für das Update


1
Der versionCode hat mich erwischt - warum wird das benötigt?
Slott

5

Meine Lösung war, dass ich denselben Schlüssel verwenden musste, um apk in Market (als Entwurf für APK) und im Test zu signieren. Anstatt nur Anwendung ausführen zu müssen, muss ich bei jedem Update signierte APK exportieren, sie deinstallieren und mit apk-Befehlszeilenbefehlen auf dem Gerät neu installieren. Grundsätzlich können Sie Ihren eigenen Keystore auch als Debug-Keystore verwenden, es müssen jedoch bestimmte fest codierte Kennwörter und Namen für Schlüssel verwendet werden.


0

Ich dachte, ich würde eine weitere mögliche Lösung teilen, wenn Sie diesen Fehler erhalten. Ich habe ursprünglich einen Entwurf meiner apk mit aktivierter Abrechnungsberechtigung auf Google hochgeladen, sodass ich ihn in App-Käufen einrichten konnte. Später habe ich eine weitere apk hochgeladen, ohne dass die Abrechnungsberechtigung in meinem AndroidManifest fehlte, was zu dem Fehler führte. Scheint definitiv ein unwahrscheinlicher Fall zu sein, aber es ist mir passiert, also ist es möglich.

Bearbeiten: Wenn die Version, die Sie als Entwurf bei Google eingereicht haben, nicht signiert ist, tritt der Fehler ebenfalls auf.


0

Um meine zwei Cent einzubringen, konnte ich es testen, indem ich es auf die Beta-Version hochlud und ein Google Mail-Konto mit Testzugriff auf der Registerkarte "Einstellungen" mit einer neuen Version meiner App erstellte ...

Ich verschiebe es jetzt in die Produktion ...

Vielen Dank! Nathan


-2

Alter Thread, aber meine Erfahrung hinzufügen ...

Ich habe eine apk mit einem höheren versionCode 1 installiert als im Laden. Spielte es auf 2 verschiedenen Konten auf meinem Nexus 7 und hatte dieses Problem. Also habe ich aus dem Store deinstalliert und neu installiert, um sicherzustellen, dass der versionCode übereinstimmt. Selbst wenn man über Nacht wartete, konnte der Fehler nicht behoben werden.

Es stellte sich heraus, dass ich von allen 3 Google-Konten, die ich mit meinem Nexus 7 verknüpft habe, deinstallieren musste. Es wurde wiederhergestellt, als ich die App explizit von allen drei Konten auf meinem Nexus 7 deinstallierte und dann aus dem Store neu installierte.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.