czwartek, 12 kwietnia 2018

LockMe - java.lang.RuntimeException: Unable to instantiate receiver dmm.lockme.Lock$LockReceiver: java.lang.InstantiationException: java.lang.Class has no zero argument constructor

Taki mi się właśnie FATAL EXCEPTION trafił. A długo się zastanawiałam czemu mi się apka wywala zanim się jeszcze porządnie włączy, jak tylko dam jej prawa administratora, a później działa sobie normalnie i spokojnie. To przecież nie może być mój błąd, skoro później tak ładnie działa.

A jednak.
Problem wynikał z tego, że wydawało mi się, że ta aplikacja jest bardzo, bardzo prosta, na 3 linijki max. Wydawało mi się, że ja chcę tylko blokować ekran, to przecież nic ważnego, nic wielkiego, nic skomplikowanego. Dlatego z różnych przykładów brałam tylko to, co było niezbędne do uruchomienia aplikacji, nie kopiowałam wszystkiego bezmyślnie.

Aplikacja wymagała implementacji klasy, która miała rozszerzać DeviceAdminReceiver. To po to, żeby aplikacja mogła uzyskać uprawnienia administratora. Nie wiedziałam wtedy, że do manifestu nie można dodwać klas, które nie są statyczne i dlatego pojawił się ten wyjątek. Moja klasa nie miała robić nic szczególnego, dlatego mogłam spokojnie zadeklarować ją następująco:
public static class LockReceiver extends DeviceAdminReceiver{
    }


Brak komentarzy:

Prześlij komentarz