żądanej pozycji nie można kupić

96

Próbuję zintegrować zakupy w aplikacji Android Market z moją aplikacją, ale niestety napotykam irytujący błąd za każdym razem, gdy próbuję kupić prawdziwy produkt inapp.

Pobrałem przykładową aplikację (Dungeons) i dodałem ją do mojej aplikacji. Zaktualizowałem klucz publiczny, a także zaktualizowałem listę produktów do następujących:

/ ** Tablica wpisów na liście produktów dla produktów, które można kupić. * /

private static final CatalogEntry[] CATALOG = new CatalogEntry[] {
    new CatalogEntry("full", "Full v", Managed.MANAGED),

};

Wyeksportowałem aplikację za pomocą Eclipse i zainstalowałem ją na moim telefonie, a także załadowałem na witrynę Android Market. Również na stronie Android Market dodałem pełny jako zakup w aplikacji i opublikowałem go.

Dodałem również moje konto googlemail jako konto testowe (to jest to, na które jestem zalogowany na moim telefonie).

Kiedy uruchamiam aplikację na moim telefonie, otrzymuję żądany przedmiot, który nie jest dostępny do kupienia, wiadomość na Androida za każdym razem, gdy próbuję kupić pełną wersję, ale jeśli spróbuję, na przykład, zakupiony android.test, działa absolutnie dobrze.

Dokumentacja dotycząca żądanego elementu, którego nie można kupić w systemie Android, zawiera następujące informacje:

Wskazuje, że Android Market nie może znaleźć żądanego elementu na liście produktów aplikacji. Może się tak zdarzyć, jeśli identyfikator produktu jest błędnie wpisany w żądaniu REQUEST_PURCHASE lub jeśli pozycja nie jest opublikowana na liście produktów aplikacji.

Identyfikator produktu jest zdecydowanie taki sam, jest definitywnie opublikowany, a żądanie musi przejść pomyślnie, ponieważ jest to przykładowa aplikacja.

Używam tej samej wersji apk, a także opublikowałem produkty inapp i aktywowałem apk. ale nadal mam ten sam problem, pomóż mi go naprawić.

Wszelkie myśli będą mile widziane!

laxman
źródło
1
publikujesz swój produkt?
Mohsin Naeem
konto Google, którego używasz Merchant Account, różni się od konta urządzenia?
Mohsin Naeem
1
Upewnij się, że produkt dodany w Sklepie Play ma status „aktywny”
Ali
Upewnij się, że testerzy kliknęli link zgody ...
Pixel

Odpowiedzi:

181

Moje doświadczenie z tym błędem to:

  1. Pamiętaj, aby przesłać podpisany plik APK do konsoli programisty.

  2. Upewnij się, że instalujesz podpisany pakiet APK na swoim urządzeniu, a nie uruchamiasz aplikacji w debugerze.

  3. Upewnij się, że utworzyłeś konto testowe w konsoli programisty.

  4. Skonfiguruj konto testowe

    1. Pamiętaj, aby zalogować się na swoje urządzenie za pomocą konta testowego.
    2. W przypadku zamkniętych testów alfa / beta upewnij się, że dodałeś swoje konto testowe do wybranej grupy testerów, możesz to zrobić na stronie zarządzania wersją alfa / beta.
    3. W przypadku zamkniętych testów alfa / beta upewnij się, że Twoje konto testowe zaakceptowało udział w testowaniu tej aplikacji poprzez specjalny link z zaproszeniem
  5. Upewnij się, że utworzyłeś rozliczenia aplikacji w konsoli programisty i ostatecznie aktywujesz element z konsoli !!! (to jest ten, który dostałem po pełnym wykonaniu samouczka Google)

  6. Upewnij się, że kod VersionCode i nazwa_wersji w manifeście są takie same, jak wersja w konsoli programisty (Alpha, Beta lub Production. Wersje robocze już nie działają). Odpowiedź @alexgophermix zadziałała dla mnie.

Jeśli szukasz testowania płatności bez faktycznej wypłaty pieniędzy, musisz dodatkowo dodać swoje konto testowe do innej specjalnej listy kont „Konta Gmail z dostępem testowym”, możesz to znaleźć w ustawieniach konta Play (nie w projekcie!). Na stronie, na której możesz zobaczyć listę swoich projektów, przejdź do ustawień, a następnie na stronie „Szczegóły konta” (przewiń w dół, prawie na dole strony) znajdziesz listę „Konta Gmail z dostępem testowym”.

pinux
źródło
5
Zawsze pamiętaj, aby przetestować aplikację przy użyciu podpisanej kompilacji. +1
Vamsi Challa
37
Upewnij się, że kod VersionCode i nazwa_wersji w manifeście są takie same, jak wersja w konsoli programisty (Alpha, Beta lub Production. Wersje robocze już nie działają). Odpowiedź @alexgophermix zadziałała dla mnie. +1
i.shadrin
6
Ponadto upewnij się, że użytkownik testowy zgodził się na Alpha (jeśli używasz tego obv). Nie wystarczy dodać ich do Testu Licencji.
ADB
4
Upewnij się, że zostałeś testerem, otwierając adres URL zgody i korzystając z konta testowego.
bogumil
1
Kody wersji muszą się zgadzać, dzięki za ostrzeżenie, oszczędzając chwilę czystej paniki.
Meanman
98

Oto kilka rzeczy do sprawdzenia:

  1. Utworzyłeś apk i opublikowałeś go w Panelu GooglePlay w wersji alfa lub beta .
  2. Aplikacja na pulpicie nawigacyjnym Google Play NIE jest w trybie roboczym , ale w trybie opublikowanym (przed opublikowaniem należy zaznaczyć wszystkie małe kółka z ikoną zaznaczenia po lewej stronie ekranu na zielono).
  3. Ustawiłeś inne konto testowe niż to, które jest „dołączone” do Panelu Google Play. Możesz to zrobić, tworząc grupę Google+, dodaj swoje konto testowe do tej grupy i określ grupę Google+ w Panelu GooglePlay.
  4. Plik APK, którego używasz do testowania zakupu, ma ten sam kod wersji, nazwę wersji i, co najważniejsze, jest podpisany tym samym magazynem kluczy, co plik APK opublikowany w sklepie.
  5. Państwo czekać kilka godzin między gdy zmienisz coś w desce rozdzielczej w celu zmiany propagować. To zajmie kilka godzin.
  6. Upewnij się, że wartość SKU jest prawidłową wartością SKU (porównaj ją z wartością wprowadzoną w Panelu GP).
  7. Próbujesz kupić już zakupiony przedmiot . Zdobądź zakupione przedmioty i wyświetl je w dzienniku, aby sprawdzić, czy tak. Jeśli tak, skonsumuj ten produkt lub zwróć pieniądze na swoje konto testowe (musisz poczekać, aż zwrot środków zostanie zrealizowany. Zajmie to kilka godzin).
  8. Upewnij się, że Inapps są aktywne !

Co mi zrobiło po 6 godzinach, to ta ostatnia część:

  1. Upewnij się, że jesteś zalogowany w Google (w przeglądarce) za pomocą konta testowego i otwierasz ten link (zaznaczony na czerwono) i zgadzasz się zostać testerem !!!! http://i.stack.imgur.com/VSgAV.png

AKTUALIZACJA

  1. Jeśli używasz smaków do budowania apek dla różnych procesorów i budujesz dla arm, armv7 i x86 i przesyłasz je wszystkie do sklepu, pamiętaj, aby użyć jednego z nich do przetestowania inapps. Jeśli używasz "uniwersalnej" kompilacji, która zawiera wszystkie biblioteki procesorów (w zasadzie inną kompilację niż ta, która jest w sklepie), to nie zadziała.
AndreiBogdan
źródło
14
Mam taką samą sytuację z tobą. wszystkie 1-8 to nie problem, ale to 9 to jest problem. Marnuję cały dzień, żeby to znaleźć. Jesteś moim ratownikiem.
Paiboon Panusbordee
2
Tak, ostatnia część jest najważniejsza, wydaje się, że Google zmieniło zasady, kiedyś działało bez kroku 9, ale teraz, w przypadku zamkniętej bety lub otwartej bety, musisz kliknąć link. Dzięki stary!
Siyuan Zhang
moim problemem był 4. kod wersji zainstalowanej apk nie był taki sam jak apk Google Play. Kiedy stworzyłem tę samą wersję, zadziałało. Ta odpowiedź jest cenna.
Thupten
Tak bardzo nienawidzę tej „kilku godzinnej” niepewności! Podczas tych „kilku godzin” mój szef zwykle wariuje! Przy okazji, jeśli masz ręcznie zainstalowany pakiet APK, nie otrzymasz żadnej aktualizacji! I to głupie, że z własnym podpisanym pakietem APK IAB nie działa. Chyba musimy poczekać, aż nastąpi ta cholerna aktualizacja!
WindRider
Informacje o używaniu klucza wydania w trybie debugowania w Android Studio można znaleźć na stronie stackoverflow.com/questions/16965058/ ...
VSB
45

Dzieje się tak, gdy produkt jest Inactivew Sklepie Play, Activateprodukt i powinien działać dobrze.

AnilPatel
źródło
Nigdy o tym nie myślałem ...: D Dzięki za zaoszczędzenie więcej godzin!
Kamran Ahmed
Co masz na myśli mówiąc „nieaktywny” ? Programiści powinni po prostu używać wersji Alpha pakietu APK.
IgorGanapolsky
23

Ten błąd pojawia się, gdy wszystko, co zrobiłeś, jest idealne, użyłeś podpisanego pliku APK z odpowiednim identyfikatorem produktu, ale musisz pamiętać, że konto , którego używasz, może nie mieć odpowiednich ważnych danych karty kredytowej .

Jeśli więc chcesz kupić dowolny produkt, nawet z kontem testowym , to konto powinno mieć ważne dane kredytowe.

Nirali
źródło
Ta odpowiedź jest zarówno prawdziwa, jak i rzadka. Wielkie dzięki za pójście o krok dalej i nie dodawanie kolejnej odpowiedzi „aktywuj produkt”.
Don
Doświadczając tego właśnie teraz. Po ponownym uruchomieniu może zmienić się na wyskakujące okienko „Dodaj metodę płatności” zamiast niedostępnego wyskakującego okienka, ale nie może. nie jestem pewien, dlaczego masz jedną lub drugą.
user107172
23

Jest jeszcze jedna możliwa przyczyna tego błędu, która prawie doprowadzała mnie do szału przez cały dzień, dopóki nie znalazłem problemu: wersja apk. Jeśli pracujesz z lokalnym apk (poprawnie podpisany, prawidłowy klucz, prawidłowe identyfikatory produktów) z numerem wersji wyższym niż ten przesłany do Sklepu Play, również pojawi się ten błąd.

Mam nadzieję, że to komuś pomoże

DavidBVal
źródło
To nie daje odpowiedzi na pytanie. Gdy zdobędziesz wystarczającą reputację , będziesz mógł komentować każdy post ; zamiast tego udziel odpowiedzi, które nie wymagają wyjaśnień od pytającego . - Z recenzji
tttony
11
Informacje zawarte w tej odpowiedzi są naprawdę dobre i mogą być właściwą odpowiedzią dla niektórych osób takich jak ja
AlexioVay
7
@tttony Wskazałem na inną przyczynę błędu, nie prosiłem o żadne wyjaśnienia. Nie jest to hipoteza lub pytanie, jeśli ręcznie zainstalować plik APK z wyższym numerem wersji niż ta, opublikowana w-app zakupów będzie powrót tego błędu.
DavidBVal
2
To była bardzo przydatna informacja. Wielkie dzięki za zaoszczędzenie tak dużo czasu. Kciuki w górę.
Aritra Roy
19

Może robiłem to źle, ale otrzymasz również ten błąd, jeśli wersja, na której testujesz, nie jest dostępna w Sklepie Play jako wersja alfa, beta lub produkcja.

Często aktualizuję swój kod VersionCode i nazwa_wersji, wciąż testując nową wersję (PRZED przesłaniem do Sklepu Play), a następnie pojawia się ten błąd, gdy idę przetestować funkcje specyficzne dla IAB.

alexgophermix
źródło
4
A także odczekaj co najmniej 45-90 minut po przesłaniu do Sklepu Play, aby zaczęło działać.
mm2001
9

W moim przypadku trzeba przejść, aby uzyskać link z zakładki APK Opt-in URL. Otwórz przeglądarkę i użyj łącza. Następnie zarejestruj się jako tester na tej stronie.

Payne Chu
źródło
9

musisz się zgodzić, aby zostać testerem

Zarządzanie wersjami -> wersje aplikacji -> zarządzaj testerem, a następnie otwórz ten link (adres URL zgody) w trybie incognito, aby zalogować się na konto testera

wprowadź opis obrazu tutaj

vuhung3990
źródło
Jestem testerem i mam ten sam problem.
Jorgesys
4

sprawdź, czy używasz tego samego identyfikatora konta testowego, czy nie

laxman
źródło
ha moje urządzenie zaloguj się jako inny identyfikator poczty, po ustawieniu testaccount identyfikator poczty jest podstawowym identyfikatorem ten problem został rozwiązany.
laxman
3
To nie daje odpowiedzi na pytanie. Aby skrytykować lub poprosić autora o wyjaśnienie, zostaw komentarz pod jego postem - zawsze możesz komentować własne posty, a gdy będziesz mieć wystarczającą reputację , będziesz mógł skomentować każdy post .
Aziz Shaikh
Otrzymałem ten błąd, gdy moje urządzenie loguje się jako inne niż identyfikator poczty konta testowego (identyfikator poczty testaccount określony w konsoli programisty w ramach klucza publicznego). jeśli ustawię identyfikator poczty testaccount jako podstawowy identyfikator poczty mojego urządzenia
laxman
4

Najnowsze dodatki (2016/11):

  1. tester musi ZAAKCEPTOWAĆ żądanie testowania pobrane z linku pobranego z Konsoli programisty (sekcja: APK)

  2. aplikacja musi być OPUBLIKOWANA : publikowanie w wersji beta / alfa jest dozwolone; INFORMACJE: jeśli klikniesz „Publikuj” w Konsoli programisty, aplikacja nie zostanie opublikowana w wersji produkcyjnej, chyba że propagujesz ją na karcie Produkcja (w sekcji APK);

PerfectGamesOnline.com
źródło
2

Jeśli stan produktu to „Nieaktywny”, aktywuj go. to rozwiązane dla mnie. Oczywiście aktualizacja Google zajmuje trochę czasu

Upewnij się również, że Twoja wiadomość testowa została zarejestrowana.

vijeth.ag
źródło
1

„Otwarte testy alfa” lub „otwarte testy beta” rozwiązały problem, po wypróbowaniu wszystkich metod sugerowanych w całym Internecie.

Przejdź do Konsoli programisty Androida -> Twoja aplikacja -> APK, a następnie zdecyduj się na korzystanie z otwartych testów alfa / beta. Prześlij podany link do siebie lub testerów.

Dopóki są zalogowani na to konto na swoim urządzeniu z Androidem, mogą je przetestować.

Powodzenia

R_Paoa
źródło
1

Napotkałem ten sam problem, Rozwiązaniem dla mnie było wgranie aktualnej wersji twojej aplikacji do sklepu Play, jeśli jest do testowania to prześlij ją na kanał Alpha lub Beta, zrobiłem to i błąd zniknął a szczegóły ceny są wyświetlane poprawnie.

Ameen Maheen
źródło
0

Mogą istnieć trzy możliwości:

  1. Zapisz swój plik APK w Google Play jako wersję roboczą i nie zapomnij go aktywować i opublikować swoje produkty z unikalnymi identyfikatorami.
  2. Sprawdź, czy Twoje identyfikatory są takie same jak identyfikatory produktów w Google Play.
  3. lub sprawdź, czy typy elementów są takie same, np. Zarządzane w Google Play i Twoim kodzie.

Jeśli testujesz, nie musisz publikować aplikacji. Po prostu zapisz go jako wersję roboczą. A następnie poczekaj jakiś czas, może to zająć od 2 do 3 godzin, aby to aktywować.

URAndroid
źródło
3
powyższe trzy warunki są spełnione, ale pokazuje ten sam błąd
laxman
0

Aby rozwiązać ten problem, wykonaj następujące kroki:

  1. Utwórz produkt w konsoli programisty Google Play.

  2. Zapisz i ustaw jako „Aktywny”.

  3. Prześlij plik APK do Google Play.

Uwaga: Rozliczenia w aplikacji mogą nie działać przed upływem 6 godzin od utworzenia produktu w kroku 1.

zainspirowanyMichael
źródło
0

Najlepsza głosowana odpowiedź obejmuje prawie wszystko, ale jeśli byłeś tak głupi, jak ja pośpieszyłem przez proces wydawania aplikacji, aby kontynuować testowanie IAP, pamiętaj, aby opublikować aplikację w Sklepie Play w kraju, który testujesz w! Łatwym sposobem sprawdzenia tego na urządzeniu jest kliknięcie linku „pobierz to z Google Play” podczas otwierania adresu URL akceptacji testu. Jeśli podczas próby otwarcia za pośrednictwem sklepu Google Play pojawi się błąd „Nie znaleziono elementu”, prawdopodobnie Twoja aplikacja nie została tam opublikowana. Napotkałem ten problem, ponieważ poprawnie ładowałem podpisaną aplikację przez ADB i chociaż IAP pojawią się w kompilacji, otrzymasz ten błąd, gdy spróbujesz je kupić.

sprince
źródło
0

Kupując subskrypcję w aplikacji, wszystkie rzeczy z poniższej listy znalazłem we właściwym miejscu.

  1. Utworzono podpisany apk i opublikowano w kanale alfa

  2. Dodano identyfikatory e-mail testerów do testowania licencji

  3. Dodano identyfikatory e-mail testerów do testów alfa zamkniętych ścieżek

  4. Wyrażono zgodę na bycie testerem

  5. Identyfikator testowania różni się od identyfikatora konta programisty

  6. Był na urządzeniu z Androidem, a nie na emulatorze

  7. Pobrano aplikację ze sklepu Play

Nadal otrzymuję komunikat o błędzie „Nie znaleziono szukanego elementu” .

Po zmarnowaniu 2-3 dni dowiedziałem się, że działa tylko wtedy, gdy w sklepie Play jest ustawiony jakiś tryb płatności .

Podczas gdy większość odpowiedzi dotyczy starego zakupu IAB i zaimplementowałem nowe API klienta rozliczeniowego, czyli - implementation 'com.android.billingclient:billing:1.0', znalezienie rozwiązania nie było łatwe.

Jeśli tak jest w przypadku kogoś, dodanie trybu płatności może pomóc w rozwiązaniu tego błędu. Musisz dodać jeden nawet w celu przetestowania go, jednak nie zostanie naliczony opłaty za identyfikatory e-mail dodane jako testerzy licencji.

pszczoła
źródło