web-dev-qa-db-ja.com

<expr>が必要、「?」

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(?,?)"
);
29
user92238

これはAndroid Studio 3.0のバグであり、すでに報告されています こちら 。また、これは3.1バージョンで修正されています。最新のCanary 5 3.1ビルドと正常に動作します。

3.0のパッチはもうないので、今のところできることは、回避策を実行するか、このリントチェックを無効にすることです。

10
Henry