Ich verwende diese Bibliothek , die für eine ihrer Klassen (die von ViewGroup), in "PLA_AbsListView.java", innerhalb des CTOR, gibt es diese Zeilen:
%Vor%Vor kurzem habe ich das SDK & amp aktualisiert; ADT von Android zur Unterstützung der neuen Android Version (Lollipop - API21).
Seitdem ich alles aktualisiert habe, bekomme ich diesen Fehler:
Die Methode initializeScrollbars (TypedArray) ist für den Typ PLA_AbsListView
nicht definiert
Ich habe versucht, die API so einzustellen, dass sie unter 21 liegt, aber das hat nicht geholfen.
Ich habe auch versucht herauszufinden, wo diese Funktion deklariert ist. Es sollte eine geschützte Funktion in "View.java" sein, aber aus irgendeinem Grund kann ich es nicht in die Dokumentationen
Wie könnte es sein?
Wie kann ich es beheben?
Ist es möglich, dass es ein Fehler in der Dokumentation ist?
Es hat vorher geklappt, als Kitkat angesprochen wurde ...
von View.java
von android-21
Quellen:
Sie sehen es nicht, weil die Methode mit @removed
versehen ist. initializeScrollbarsInternal()
kann auch nicht verwendet werden, da es mit @hide
annotiert ist.
Wie aus dem Kommentar ist es nicht sicher, diese Methode zu verwenden, sollten Sie es unbedingt dem Autor der lib melden.
Wie @biegleux in seiner Antwort erwähnt, ist initializeScrollbars()
nun mit @removed
im API 21 Quellcode versehen. Hier ist die Methodenquelle von API 21:
Basierend auf dem Kommentar in der Methode klingt es wie das Problem vor API 21, dass es nicht sicher war, ein TypedArray
zu übergeben, aber jetzt verwendet es nicht mehr das übergebene TypedArray
. So scheint es, dass dies mit @Deprecated
anstelle von @removed
kommentiert werden sollte und es sollte eine neue Version dieser Methode geben, die keinen Parameter benötigt, der aufgerufen werden kann, wenn wir die Bildlaufleisten aus einer benutzerdefinierten Ansicht initialisieren müssen, die programmgesteuert erstellt wird.
Bis dies behoben ist, gibt es zwei Möglichkeiten, das Problem zu umgehen:
1) Erweitern Sie Ihre benutzerdefinierte Ansicht von XML mit dem Attribut android:scrollbars
. Dies ist die sicherste Methode und sollte mit allen früheren und zukünftigen Plattformversionen funktionieren. Zum Beispiel:
Erstellen Sie eine XML-Layoutdatei ( my_custom_view.xml
):
Erweitern Sie Ihre benutzerdefinierte Ansicht:
%Vor% 2) Verwenden Sie reflection, um initializeScrollbars()
im Konstruktor Ihrer benutzerdefinierten Ansicht aufzurufen. Dies könnte in zukünftigen API-Versionen fehlschlagen, wenn die Methode initializeScrollbars()
tatsächlich entfernt oder umbenannt wird. Zum Beispiel:
In Ihrer benutzerdefinierten Ansicht (z. B. MyCustomView.java
):
Tags und Links android android-5.0-lollipop