私がDAOを新しいFlow
apiに変更しようとしているとき、私はそれを述べるコンパイルエラーを得ています
Not sure how to convert a Cursor to this method's return type
public abstract kotlinx.coroutines.flow.Flow<Java.util.List<com.ezek.ezign.model.ECampaign>> readCampaigns();
_
DAOのISです
@Dao
interface CampaignDao {
@Query("SELECT * FROM campaign ORDER BY timeStamp ASC")
fun readCampaigns(): Flow<List<ECampaign>>
@Query("SELECT * FROM campaign WHERE id = :campaignId")
fun readCampaign(campaignId: Int): Flow<ECampaign>
}
_
そして依存関係はあります
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.2'
implementation "Android.Arch.persistence.room:runtime:$rootProject.ext.room_version"
kapt "Android.Arch.persistence.room:compiler:$rootProject.ext.room_version"
//room_version = "2.1.0"
_
私はList
とArrayList
の両方で試してみましたが、運がありません。
前もって感謝します。
__some_variable____関数を持つFlow
でLiveData
とDAO
を回避するアプローチを試してみましたが、suspend
関数が存在していますが、まだエラーが発生していました。
最後に、私の問題は私の依存関係に関連していました。私は次のような複数の部屋の依存関係を持っていました:
def room_version = "2.2.5"
implementation "androidx.room:room-runtime:$room_version"
kapt "Android.Arch.persistence.room:compiler:1.1.1"
implementation "androidx.room:room-ktx:$room_version"
_
最後のものだけが必要な場合(編集を参照)。
implementation "androidx.room:room-ktx:2.2.5"
_
[〜#〜]編集[〜#〜]
実際には、これはイベントではありません。それは罰金をまとめたが、私がアプリを起動したとき、私は実行時にエラーが発生しました。
コンパイラのバージョンを交換することでうまくいくことができます。
def room_version = "2.2.5"
implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
implementation "androidx.room:room-ktx:$room_version"
_