Fehler bei findViewById nach dem Upgrade zur Kompilierung der SDK-Version

7

Nach dem Upgrade zur Kompilierung von SDK Version 26 zeigen alle findViewById Fehler:

  

nicht genug Informationen, um Parameter T in Spaß abzuleiten   findViewById (id: Int): T!

    
bond 09.06.2017, 15:27
quelle

4 Antworten

14

Das liegt daran, dass wir es von Android O an nicht benötigen. Es gibt ein paar Optionen. Ersetzen:

%Vor%

Mit entweder:

%Vor%

Oder:

%Vor%

Wenn Sie wissen wollen, was unter dem Deckblatt passiert ist, wurde die von O zugrunde liegende Methode in

geändert %Vor%     
bond 09.06.2017 15:27
quelle
4

In reinem Java haben Sie zum Beispiel

%Vor%

In Kotlin kannst du damit gehen

%Vor%     
MatPag 09.06.2017 15:32
quelle
0

Da Sie java mit kotlin verwechseln, können Sie mit android studio 3.0 kotlin anstelle von java Syntax verwenden, oder Sie können beide verwenden wie unter Android offiziellen Blog

Lesen Sie auch Get Started with Kotlin on Android

Update: Die Funktionssignatur View findViewById(int id)

wurde auf <T extends View>T findViewById(int id) aktualisiert. Das bedeutet, dass der Inferenzmechanismus für den Rückgabetyp angewendet wird, wobei T extends View für die Ansicht oder die Untertypen

steht

Hinweis: Wie bereits erwähnt, wird das Anwenden von Cast immer noch keinen Fehler erzeugen, sondern nur eine Warnung für die Verwendung unnötiger Cast, könnte aber ein Fehler in kotlin Typ Inferenz, aber nicht in Java sein / p>     

Pavneet_Singh 09.06.2017 15:31
quelle
0

Es ist Kotlin irgendein Typ erwarteter Fehler, der es repariert

%Vor%     
Polas Habib 18.12.2017 16:12
quelle

Tags und Links