-1

Hi i wrote a shared lib which i imported to new project. in this lib are any commons thinks like login user, settings, etc... but when i imported it to new project . there are any problems with compilation, it return

C:\Users\jirasek.ondrej\AndroidStudioProjects\LIBRARY\NvmesAppLibrary\build\tmp\kapt3\stubs\debug\com\nvsp\nvmesapplibrary\database\LibDao.java:49: error: Query method parameters should either be a type that can be converted into a database column or a List / Array that contains such type. You can consider adding a Type Adapter for this.
    kotlin.coroutines.Continuation<java.lang.Integer> continuation);
                                                      ^
C:\Users\jirasek.ondrej\AndroidStudioProjects\LIBRARY\NvmesAppLibrary\build\tmp\kapt3\stubs\debug\com\nvsp\nvmesapplibrary\database\LibDao.java:47: error: Unused parameter: continuation
    public abstract java.lang.Object deleteUserByApp(@org.jetbrains.annotations.NotNull()
                                     ^
C:\Users\jirasek.ondrej\AndroidStudioProjects\LIBRARY\NvmesAppLibrary\build\tmp\kapt3\stubs\debug\com\nvsp\nvmesapplibrary\database\LibDao.java:70: error: Query method parameters should either be a type that can be converted into a database column or a List / Array that contains such type. You can consider adding a Type Adapter for this.
    kotlin.coroutines.Continuation<? super kotlin.Unit> continuation);
                                                        ^
C:\Users\jirasek.ondrej\AndroidStudioProjects\LIBRARY\NvmesAppLibrary\build\tmp\kapt3\stubs\debug\com\nvsp\nvmesapplibrary\database\LibDao.java:68: error: Unused parameter: continuation
    public abstract java.lang.Object disableActive(@org.jetbrains.annotations.NotNull()
                                     ^
C:\Users\jirasek.ondrej\AndroidStudioProjects\LIBRARY\NvmesAppLibrary\build\tmp\kapt3\stubs\debug\com\nvsp\nvmesapplibrary\database\LibDao.java:77: error: Query method parameters should either be a type that can be converted into a database column or a List / Array that contains such type. You can consider adding a Type Adapter for this.
    kotlin.coroutines.Continuation<? super kotlin.Unit> continuation);
                                                        ^
C:\Users\jirasek.ondrej\AndroidStudioProjects\LIBRARY\NvmesAppLibrary\build\tmp\kapt3\stubs\debug\com\nvsp\nvmesapplibrary\database\LibDao.java:74: error: Unused parameter: continuation
    public abstract java.lang.Object setActive(@org.jetbrains.annotations.NotNull()
                                     ^
C:\Users\jirasek.ondrej\AndroidStudioProjects\LIBRARY\NvmesAppLibrary\build\tmp\kapt3\stubs\debug\com\nvsp\nvmesapplibrary\database\LibDao.java:83: error: Query method parameters should either be a type that can be converted into a database column or a List / Array that contains such type. You can consider adding a Type Adapter for this.
    kotlin.coroutines.Continuation<? super kotlin.Unit> continuation);
                                                        ^
C:\Users\jirasek.ondrej\AndroidStudioProjects\LIBRARY\NvmesAppLibrary\build\tmp\kapt3\stubs\debug\com\nvsp\nvmesapplibrary\database\LibDao.java:81: error: Unused parameter: continuation
    public abstract java.lang.Object setAlternativeActive(@org.jetbrains.annotations.NotNull()
                                     ^
C:\Users\jirasek.ondrej\AndroidStudioProjects\LIBRARY\NvmesAppLibrary\build\tmp\kapt3\stubs\debug\com\nvsp\nvmesapplibrary\database\LibDao.java:18: error: Type of the parameter must be a class annotated with @Entity or a collection/array of it.
    kotlin.coroutines.Continuation<? super java.lang.Long> continuation);
                                                           ^
C:\Users\jirasek.ondrej\AndroidStudioProjects\LIBRARY\NvmesAppLibrary\build\tmp\kapt3\stubs\debug\com\nvsp\nvmesapplibrary\database\LibDao.java:16: error: Not sure how to handle insert method's return type.
    public abstract java.lang.Object insertUser(@org.jetbrains.annotations.NotNull()
                                     ^
C:\Users\jirasek.ondrej\AndroidStudioProjects\LIBRARY\NvmesAppLibrary\build\tmp\kapt3\stubs\debug\com\nvsp\nvmesapplibrary\database\LibDao.java:30: error: Type of the parameter must be a class annotated with @Entity or a collection/array of it.
    kotlin.coroutines.Continuation<? super java.lang.Long> continuation);
                                                           ^
C:\Users\jirasek.ondrej\AndroidStudioProjects\LIBRARY\NvmesAppLibrary\build\tmp\kapt3\stubs\debug\com\nvsp\nvmesapplibrary\database\LibDao.java:28: error: Not sure how to handle insert method's return type.
    public abstract java.lang.Object insertSetting(@org.jetbrains.annotations.NotNull()
                                     ^
C:\Users\jirasek.ondrej\AndroidStudioProjects\LIBRARY\NvmesAppLibrary\build\tmp\kapt3\stubs\debug\com\nvsp\nvmesapplibrary\database\LibDao.java:24: error: Type of the parameter must be a class annotated with @Entity or a collection/array of it.
    kotlin.coroutines.Continuation<? super kotlin.Unit> continuation);
                                                        ^
C:\Users\jirasek.ondrej\AndroidStudioProjects\LIBRARY\NvmesAppLibrary\build\tmp\kapt3\stubs\debug\com\nvsp\nvmesapplibrary\database\LibDao.java:36: error: Type of the parameter must be a class annotated with @Entity or a collection/array of it.
    kotlin.coroutines.Continuation<? super kotlin.Unit> continuation);
                                                        ^
C:\Users\jirasek.ondrej\AndroidStudioProjects\LIBRARY\NvmesAppLibrary\build\tmp\kapt3\stubs\debug\com\nvsp\nvmesapplibrary\database\LibDao.java:42: error: Type of the parameter must be a class annotated with @Entity or a collection/array of it.
    kotlin.coroutines.Continuation<? super kotlin.Unit> continuation);
                                                        ^

but gradle files sets same.

Gradle lib:

plugins {
    id 'com.android.library'
    id 'kotlin-android'
    id 'kotlin-kapt'
    id("androidx.navigation.safeargs.kotlin")
}
kapt { strictMode = true }
android {
    compileSdkVersion 30

    defaultConfig {
        minSdkVersion 23
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        consumerProguardFiles "consumer-rules.pro"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    buildFeatures {
        viewBinding = true
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
}

dependencies {

    implementation 'androidx.core:core-ktx:1.6.0'
    implementation 'androidx.appcompat:appcompat:1.3.1'
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'androidx.annotation:annotation:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'



    //Lottie Animation
    implementation 'com.airbnb.android:lottie:3.4.0'

//navigation
    def nav_version = "2.3.5"
    implementation("androidx.navigation:navigation-fragment-ktx:$nav_version")
    implementation("androidx.navigation:navigation-ui-ktx:$nav_version")

// Room
    implementation 'androidx.room:room-ktx:2.3.0'
    implementation 'androidx.room:room-rxjava2:2.3.0'
    kapt "androidx.room:room-compiler:2.3.0"
    implementation 'androidx.room:room-runtime:2.3.0'
// End room


    //  Koin DI
    implementation "org.koin:koin-android:2.2.2"
    implementation "org.koin:koin-android-scope:2.2.2"
    implementation "org.koin:koin-android-viewmodel:2.2.2"
    implementation "org.koin:koin-android-ext:2.2.2"

    def arch_version = '2.3.0'

    //implementation "androidx.lifecycle:lifecycle-extensions-ktx:$arch_version"
    implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$arch_version"
    implementation "androidx.lifecycle:lifecycle-livedata-ktx:$arch_version"
    implementation "androidx.lifecycle:lifecycle-runtime-ktx:$arch_version"

    implementation 'com.toptoche.searchablespinner:searchablespinnerlibrary:1.3.1'

    implementation 'com.google.zxing:core:3.4.0'
    implementation 'com.journeyapps:zxing-android-embedded:3.6.0'

    //GSON
    implementation 'com.google.code.gson:gson:2.8.8'
    //Volley
    implementation("com.android.volley:volley:1.2.1")

    //color Picker
    implementation 'petrov.kristiyan:colorpicker-library:1.1.10'
}

and gradle App

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-kapt'
}

android {
    compileSdk 30

    defaultConfig {
        applicationId "com.nvsp.kontrola_nakladu"
        minSdk 23
        targetSdk 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
        debug {
            resValue("string", "PORT_NUMBER", "8081")
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
    buildFeatures {
        viewBinding true
    }
}

dependencies {
    implementation project(':NvmesAppLibrary')

    implementation 'androidx.core:core-ktx:1.7.0'
    implementation 'androidx.appcompat:appcompat:1.4.0'
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
    implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5'
    implementation 'androidx.navigation:navigation-ui-ktx:2.3.5'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

    //  Koin DI
    implementation "org.koin:koin-android:2.2.2"
    implementation "org.koin:koin-android-scope:2.2.2"
    implementation "org.koin:koin-android-viewmodel:2.2.2"
    implementation "org.koin:koin-android-ext:2.2.2"
// End Koin
    // Room
    // implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
    // implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
    implementation 'androidx.room:room-ktx:2.3.0'

    kapt  "androidx.room:room-compiler:2.3.0"
    implementation 'androidx.room:room-runtime:2.3.0'
 //   implementation "androidx.room:room-rxjava2:2.3.0"
    debugImplementation 'com.amitshekhar.android:debug-db:1.0.6'
// End room
    //Volley
    implementation("com.android.volley:volley:1.2.1")
    //GSON
    implementation 'com.google.code.gson:gson:2.8.8'

    implementation 'com.amitshekhar.android:debug-db:1.0.6'

    //implementation('org.jetbrains:annotations:13.0')
    implementation("org.jetbrains:annotations:15.0")



}

and libDao

package com.nvsp.nvmesapplibrary.database

import androidx.lifecycle.LiveData


import androidx.room.*
import com.nvsp.nvmesapplibrary.login.models.User
import com.nvsp.nvmesapplibrary.settings.models.Settings

@Dao
interface LibDao {
    @Query("SELECT * FROM users where loggingApp=:idApp ")
    fun getUser(idApp: String): LiveData<User?>

    @Insert
    suspend fun insertUser(user: User): Long

    @Delete
    suspend fun deleteUser(user: User)

    @Insert
    suspend fun insertSetting(settings: Settings): Long

    @Delete
    suspend fun deleteSetting(settings: Settings)

    @Update
    suspend fun updateSetting(settings: Settings)

    @Query("Delete FROM users where loggingApp=:idApp")
    @JvmSuppressWildcards
    suspend fun deleteUserByApp(idApp: String):Int

    @Query("SELECT * FROM Settings where appID=:idApp and active= 1")
    fun getActiveSetting(idApp: String): LiveData<Settings?>

    @Query("SELECT * FROM Settings where appID=:idApp and active= 1")
    fun getActiveSettingFun(idApp: String): Settings

    @Query("SELECT * FROM Settings where appID=:idApp ORDER BY active DESC")
    fun getAllSettings(idApp: String): LiveData<MutableList<Settings>>

    @Query("UPDATE Settings SET active=0 where appID=:idApp and active= 1")
    suspend fun disableActive(idApp: String)

    @Query("UPDATE Settings SET active=1 where appID=:idApp and id=:id")
    suspend fun setActive(idApp: String, id: Long?)

    @Query("UPDATE Settings SET active=1 where appID=:idApp and id=(SELECT MIN(id) FROM SETTINGS WHERE appID=:idApp )")
    suspend fun setAlternativeActive(idApp: String)
}

is there anybody who knows how to solve it? thanks a lot

1 Answers1

0

Please perform following steps:

  1. Update all Room dependencies in all gradle files from version 2.3.0 to 2.4.0-rc01
  2. In Android Studio perform following: Go to File > Invalidate Caches/Restart
  3. Then try running the app

There seems to be an issue with current Room version.
But in upcoming version 2.4.0 lot of bugs especially related to TypeConverter have been fixed.

Note: Version 2.4.0-rc01 is not a stable release.
Hence, please refrain from using it in your production build.

SVK
  • 676
  • 1
  • 5
  • 17