2012-10-27 12 views
5

Właśnie następnie standardową procedurę sprawdzania licencji Android, a ostatnio mam te raporty:Raport o błędach z modułu sprawdzania licencji - co to oznacza?

java.lang.NullPointerException 
at com.google.android.vending.licensing.LicenseValidator.verify(LicenseValidator.java:99) 
at com.google.android.vending.licensing.LicenseChecker$ResultListener$2.run(LicenseChecker.java:228) 
at android.os.Handler.handleCallback(Handler.java:605) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:137) 
at android.os.HandlerThread.run(HandlerThread.java:60) 

Co to może oznaczać? Czy to normalne ? Nigdy tego nie miałem. Ponieważ dana aplikacja staje się coraz bardziej popularna - czy może to wskazywać, że ktoś próbował jakoś złamać aplikację, aby uniknąć płacenia?

Wielkie dzięki za wgląd!

Odpowiedz

13

Ten wyjątek zwykle występuje, gdy urządzenie nie ma zainstalowanej aplikacji Google Play lub nie ma konta zarejestrowanego z ustawieniem domyślnym. Można uzyskać ten wyjątek, gdy masz starą aplikację Google Market.

Można sprawdzić ten problem tutaj, a także: http://code.google.com/p/android/issues/detail?id=26722

+1

Obejście problemu w celu uniknięcia zrzutu? Sposób na wykrycie tego i wyświetlenie wiadomości? – powder366

+0

Próbowałem usunąć wszystkie konta, ale nie doświadczyłem tego błędu, aplikacja wciąż uważa, że ​​ma licencję. Również jeśli Google Play nie jest zainstalowany na telefonie, w jaki sposób ten wyjątek został zgłoszony do konsoli programisty Google Play? – petrsyn

6

wiem, że to jest stare pytanie, ale miałem ten błąd NPE na kilka urządzeń testowych i dodał to szybko naprawić:

AccountManager am = AccountManager.get(context); 
    int numAccounts = am.getAccountsByType("com.google").length; 

    if(numAccounts == 0) { 
     noAccountDialog(); 
    } else { 
     // Do the license check as you have an account 
    } 

Będziesz potrzebować uprawnienia GET_ACCOUNTS w AndroidManifest.xml

<uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
+0

Hmmm, AccountManager nie może zostać rozwiązany. import android.accounts.AccountManager również nie może zostać rozwiązany. Jaka jest sztuczka, aby to zadziałało? –

+0

Nieważne, rozumiem. Wygląda na to, że został dodany na poziomie API 5 i pracuję nad aplikacją poziomu 4 API ... "To nigdy nie jest łatwe" :-) –

+0

ludzie mają tendencję do maniaka, gdy widzą uprawnienie GET_ACCOUNTS. Jest przedstawiony jako "aplikacja może odczytać wszystkie twoje konta i dane osobowe". To niestety opcja dla mnie. – ShellDude

Powiązane problemy