Android Studioのクラスで文字列リテラルとしてSQLiteステートメントを入力すると、IDEがこの警告を表示します:"<expr> expected, got '?'"
。
私はこれが何を意味するのか理解していませんが、コードは正常に機能しているので、検査を無効にしたいと思います。しかし、どの検査が原因かはわかりません。それらは何千もあり、検索したり期待したりしても有用な結果は得られません。
Android Studioのバージョンは3.0です。さまざまなステートメントが大量に発生していますが、典型的なものは次のようになります。
SQLiteStatement st = db.compileStatement(
"INSERT OR REPLACE INTO routes(route_code, route_desc) VALUES(?,?)"
);
これはAndroid Studio 3.0のバグであり、すでに報告されています こちら 。また、これは3.1バージョンで修正されています。最新のCanary 5 3.1ビルドと正常に動作します。
3.0のパッチはもうないので、今のところできることは、回避策を実行するか、このリントチェックを無効にすることです。