web-dev-qa-db-fra.com

<expr> attendu, obtenu '?'

Lorsque vous tapez une instruction SQLite en tant que littéral de chaîne dans une classe dans Android Studio, le IDE me donne cet avertissement: "<expr> expected, got '?'".

Je ne comprends pas ce que cela signifie, mais le code fonctionne bien et j'aimerais désactiver l'inspection. Mais je ne sais pas quelle inspection est à l'origine de cela. Il y en a des milliers et la recherche de résultats attendus ne donne aucun résultat utile.

La version de Android Studio est 3.0. Cela se produit avec tout un tas de déclarations différentes, mais une déclaration typique ressemble à ceci:

SQLiteStatement st = db.compileStatement(
   "INSERT OR REPLACE INTO routes(route_code, route_desc) VALUES(?,?)"
);
29
user92238

Il s'agit d'un bogue dans Android Studio 3.0 et est déjà signalé ici . Il est également corrigé dans la version 3.1. J'utilise la dernière version de Canary 5 3.1 et ça fonctionne bien.

Puisqu'il n'y aura plus de correctifs 3.0, tout ce que vous pouvez faire pour l'instant est d'aller avec la solution de contournement ou de désactiver cette vérification des peluches.

10
Henry