 <p>I have had similar problem because I was not adding the <strong><em>_id</em></strong> column to the projection argument, so adding <strong><em>_id</em></strong> to the projections argument of the query was the solution. (<em>commented by @nobugs</em>) </p> <hr> <p>Example: </p> <pre><code> String[] projections = {"_id", "name", "age"}; Cursor cursor = db.query(domainClass.getSimpleName(), projections, null, null, null, null, null); </code></pre>