android / android/testing-samples
Native NullReferenceException thrown on ByMatcher.java:142 when using Android 4.4.x devices.
- Vorherrschende Sprache
- Java
- Sterne
- 9.3k
- Forks
- 3.6k
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Hi everyone,
I'm trying to include an Android 4 device for my Automation suite, but for some reason I'm seeing NullReference exceptions when interacting with certain textboxes in an app under test but ONLY when using pre-Android 5 devices.
The stack traces I'm seeing are as follows:
`java.lang.NullPointerException
at android.support.test.uiautomator.ByMatcher.findMatches(ByMatcher.java:142)
at android.support.test.uiautomator.ByMatcher.findMatches(ByMatcher.java:111)
at android.support.test.uiautomator.ByMatcher.findMatches(ByMatcher.java:96)
at android.support.test.uiautomator.UiDevice.findObjects(UiDevice.java:171)`
when using FindObjects method to look for the textbox in question or:
`java.lang.NullPointerException
at android.support.test.uiautomator.ByMatcher.findMatches(ByMatcher.java:142)
at android.support.test.uiautomator.ByMatcher.findMatches(ByMatcher.java:111)
at android.support.test.uiautomator.ByMatcher.findMatch(ByMatcher.java:72)
at android.support.test.uiautomator.UiDevice.hasObject(UiDevice.java:154)
at android.support.test.uiautomator.Until$2.apply(Until.java:55)
at android.support.test.uiautomator.Until$2.apply(Until.java:52)
at android.support.test.uiautomator.WaitMixin.wait(WaitMixin.java:40)
at android.support.test.uiautomator.WaitMixin.wait(WaitMixin.java:34)
at android.support.test.uiautomator.UiDevice.wait(UiDevice.java:187)`
when using phone.wait(Until.hasObject(By.res(identifier)), timer); for example.
Any clues on how to bypass this issue? I'm not sure if our App developers are doing something strange with these textboxes or early Android versions are just poorly supported by UiAutomator.
Beitragsleitfaden
Rechercherichtung
Beginne damit, den Fehler auf einem Gerät mit einer Android-Version vor Android 5 über UiDevice.findObjects und wait(Until.hasObject(By.res(identifier))) zu reproduzieren. Untersuche dann ByMatcher.java:142 und seine Aufrufer, um festzustellen, warum der Nullwert auftritt; erledigt ist die Aufgabe, wenn ein zuverlässiger Workaround dokumentiert oder ein Fix bereitgestellt wurde, der gegen beide betroffenen Aufrufpfade validiert ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- android, java
- Bereich
- mobile, testing
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100