Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gradle configuration MissingPropertyException #65

Closed
Giuliopime opened this issue May 4, 2023 · 3 comments
Closed

Gradle configuration MissingPropertyException #65

Giuliopime opened this issue May 4, 2023 · 3 comments

Comments

@Giuliopime
Copy link

Added the same exact dependencies of the proto_datastore branch of this repository and I get the following gradle exception when trying to sync

A problem occurred configuring project ':app'.

Could not get unknown property 'source' for generate-proto-generateDebugProto of type org.gradle.api.internal.file.DefaultSourceDirectorySet.
  at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:125)
  at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:42)

Caused by: groovy.lang.MissingPropertyException: Could not get unknown property 'source' for generate-proto-generateDebugProto of type org.gradle.api.internal.file.DefaultSourceDirectorySet.
  at com.google.protobuf.gradle.ProtobufPlugin$_linkGenerateProtoTasksToSourceCompile_closure25$_closure39.doCall(ProtobufPlugin.groovy:472)
  at com.google.protobuf.gradle.ProtobufPlugin$_linkGenerateProtoTasksToSourceCompile_closure25.doCall(ProtobufPlugin.groovy:469)
  at com.google.protobuf.gradle.ProtobufPlugin.linkGenerateProtoTasksToSourceCompile(ProtobufPlugin.groovy:468)
  at com.google.protobuf.gradle.ProtobufPlugin$_doApply_closure5.doCall(ProtobufPlugin.groovy:153)
  at jdk.proxy1/jdk.proxy1.$Proxy56.afterEvaluate(Unknown Source)
  at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:125)
  at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:42)

Seems like some proto source is not configured, but nothing is mentioned about this in the codelab, how can I resolve this?

@Giuliopime
Copy link
Author

It's weird because in this repository it builds just fine
So here are my root build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    ext {
        compose_version = '1.4.3'
        ktor_version = '2.3.0'
        room_version = '2.5.1'
    }
}

plugins {
    id 'com.android.application' version '8.0.1' apply false
    id 'com.android.library' version '8.0.1' apply false
    id 'org.jetbrains.kotlin.android' version '1.7.0' apply false
    id 'com.google.dagger.hilt.android' version '2.44' apply false
    id 'org.jetbrains.kotlin.plugin.serialization' version '1.7.10' apply false
}

And my app module build.gradle

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    id 'kotlin-kapt'
    id 'com.google.dagger.hilt.android'
    id 'org.jetbrains.kotlin.plugin.serialization'
    id "com.google.protobuf" version "0.8.17"
}

android {
    namespace 'app.index_it.index'
    compileSdk 33

    defaultConfig {
        applicationId "app.index_it.index"
        minSdk 24
        targetSdk 33
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary true
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
    buildFeatures {
        compose true
    }
    composeOptions {
        kotlinCompilerExtensionVersion '1.2.0'
    }
    packagingOptions {
        resources {
            excludes += '/META-INF/{AL2.0,LGPL2.1}'
        }
    }
}

dependencies {
    // Ktor
    implementation "io.ktor:ktor-client-content-negotiation:$ktor_version"
    implementation "io.ktor:ktor-client-resources:$ktor_version"
    implementation "io.ktor:ktor-client-android:$ktor_version"
    implementation "io.ktor:ktor-client-core:$ktor_version"

    // Serialization
    implementation "io.ktor:ktor-serialization-kotlinx-json:$ktor_version"

    // DI
    implementation 'com.google.dagger:hilt-android:2.46'
    kapt "com.google.dagger:hilt-compiler:2.44"
    implementation 'androidx.hilt:hilt-navigation-compose:1.0.0'

    // Room
    implementation "androidx.room:room-runtime:$room_version"
    annotationProcessor "androidx.room:room-compiler:$room_version"

    // Datastore
    implementation  "androidx.datastore:datastore:1.0.0"
    implementation  "com.google.protobuf:protobuf-javalite:3.19.4"

    implementation 'androidx.navigation:navigation-compose:2.5.3'
    implementation 'androidx.activity:activity-compose:1.7.1'
    implementation 'androidx.compose.material3:material3:1.1.0-rc01'
    implementation 'androidx.compose.material:material:1.4.3'
    implementation "androidx.compose.ui:ui-tooling-preview:$compose_version"
    implementation "androidx.compose.ui:ui:$compose_version"
    implementation("androidx.lifecycle:lifecycle-runtime-compose:2.6.1")
    implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.1'
    implementation 'androidx.core:core-splashscreen:1.0.1'
    implementation 'androidx.core:core-ktx:1.10.0'

    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
    androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_version"
    debugImplementation "androidx.compose.ui:ui-tooling:$compose_version"
    debugImplementation "androidx.compose.ui:ui-test-manifest:$compose_version"
}

// Allow references to generated code
kapt {
    correctErrorTypes true
}

protobuf {
    protoc {
        artifact = "com.google.protobuf:protoc:3.19.4"
    }

    // Generates the java Protobuf-lite code for the Protobufs in this project. See
    // https://github.com/google/protobuf-gradle-plugin#customizing-protobuf-compilation
    // for more information.
    generateProtoTasks {
        all().each { task ->
            task.builtins {
                java {
                    option 'lite'
                }
            }
        }
    }
}

@Jaehwa-Noh
Copy link

I solve that problem in #67 by "com.google.protobuf" version change "0.8.17" to "0.9.2"
You should try it.

@Giuliopime
Copy link
Author

I had to use 0.9.1 for the protobuf version, otherwise it threw some exceptions

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants