Ich weiß nicht warum, aber ich bekomme diesen seltsamen Fehler, wenn ich in diesem Beispiel einen ternären Operator verwende:
Ich denke, es hängt mit der Art und Weise zusammen, wie Java das Ergebnis vom Operator ausgibt, aber nur in bestimmten Fällen.
Danke für jede Erklärung.
Hinweis: Ich habe nach einem gesucht, konnte aber nur NPE-bezogene Antworten finden.
-Bearbeiten -
Die App verwendet:
Der Test wurde mit Android Studio 2.0 Beta 5 mit der entsprechenden Google-Version
durchgeführtDer Grund ist wegen der Art, wie ternäre Operatoren arbeiten.
Es werden immer beide Objekte auf den nächsten Super-Typ angewendet, der beiden Objekten gemeinsam ist.
In Ihrem Fall ist es BaseInterpolator
, weil Ihre targetSDK-Version auf 23
gesetzt ist.
Da Ihre MinSDK jedoch 14
ist, funktioniert die Umwandlung nicht auf allen Geräten. Daher der Fehler.
Um das Problem zu beheben, können Sie beiden Objekten eine explizite Umwandlung von TimeInterpolator
hinzufügen.