Android Kamer Persistence Library werkt niet binnen bibliotheek project

stemmen
5

Ik ben het ontwikkelen van een Android-bibliotheek, en wil de nieuwe Android-Room persistentie bibliotheek erin. Echter, bij de lancering van kreeg ik deze fout:

Caused by: java.lang.RuntimeException: cannot find implementation for MyLibraryName.Database.QSDatabase. QSDatabase_Impl does not exist at android.arch.persistence.room.Room.getGeneratedImplementation(Room.java:90)

waardoor de annotationProcessor niet opwekt extra code tijdens het compileren.

Btw, werkt alles boete wanneer ik mijn @Database code in de app-module.

Mijn gradle bestand (bibliotheek module):

apply plugin: 'com.android.library'
apply plugin: 'groovyx.android'

buildscript {
repositories {
    jcenter()
    maven { url 'https://maven.google.com' }
}

dependencies {
    classpath 'com.android.tools.build:gradle:2.3.2'
    classpath 'org.codehaus.groovy:groovy-android-gradle-plugin:1.1.0'
}
}

android {
compileSdkVersion 25
buildToolsVersion 25.0.3

defaultConfig {
    minSdkVersion 15
    targetSdkVersion 25
    versionCode 1
    versionName 1.0
    configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
            def requested = details.requested
            if (requested.group == 'com.android.support') {
                if (!requested.name.startsWith(multidex)) {
                    details.useVersion '25.3.0'
                }
            }
        }
    }
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
sourceSets { main { java.srcDirs = ['src/main/java', 'src/main/groovy'] } }
}

dependencies {

// google Room persistence library
compile android.arch.persistence.room:runtime:1.0.0-alpha1
annotationProcessor android.arch.persistence.room:compiler:1.0.0-alpha1

compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', 
{
    exclude group: 'com.android.support', module: 'support-annotations'
})

// google location service
compile 'com.google.android.gms:play-services-location:10.2.4'

androidTestCompile 'junit:junit:4.12'
// Http
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.8.0'
compile 'com.squareup.retrofit2:converter-scalars:2.1.0'

// groovy
compile group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.4.4'

}
De vraag is gesteld op 08/06/2017 om 14:26
bron van user
In andere talen...                            


1 antwoorden

stemmen
-1

@stevenwood Het lijkt erop dat je hebt gelijk over groovy /

Ik had hetzelfde project structuur. Maar in mijn geval, ik had geen echte Groovy code binnen groovy /. Alleen duidelijke oude Java-code. Vandaar, misschien was het makkelijker voor mij om het project weer aan het werk door het maken van de volgende wijzigingen

Het verwijderen / commentaar-out classpath 'org.codehaus.groovy:gradle-groovy-android-plugin:0.3.8' from the project's build.gradle

Het verwijderen / commentaar-out apply plugin: 'groovyx.grooid.groovy-android' from the module's build.gradle

git mv groovy/ java/

Vervolgens ten minste, stopte ik het verkrijgen van de missing Database_Implboodschap van Room.

antwoordde op 02/08/2017 om 08:09
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more