Cannot import com.google.cloud.speech.v1.SpeechGrpc in Android
Asked Answered
J

2

10

I'm trying to use Google's Speech API in Android project. The example project works. I'm having trouble to use it in my own android app.

build.gradle(Module:app) :

apply plugin: 'com.android.application'
apply plugin: 'com.google.protobuf'

ext {
    supportLibraryVersion = '25.4.0'
    grpcVersion = '1.4.0'
}
android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"

    defaultConfig {
        applicationId "ApplicationID"
        minSdkVersion 16
        targetSdkVersion 24
//        compileOptions {
//            sourceCompatibility JavaVersion.VERSION_1_5
//            targetCompatibility JavaVersion.VERSION_1_5
//        }
    }
    signingConfigs {
        release {
            storeFile file(project.properties.storeFile)
            storePassword project.properties.storePassword
            keyAlias project.properties.keyAlias
            keyPassword project.properties.keyPassword
        }
    }
    productFlavors {
        dev {
            // Minimum version with platform multi-dex support
            minSdkVersion 21
        }
        prod {
            // Minimum version that can run gRPC (TLS extension)
            minSdkVersion 16
        }
    }
    buildTypes {
        debug {
            minifyEnabled false
            multiDexEnabled true
        }
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
    }

    configurations.all {
        resolutionStrategy.force 'com.google.code.findbugs:jsr305:3.0.2'
        resolutionStrategy.force "com.android.support:support-annotations:$supportLibraryVersion"
    }
}

protobuf {
    protoc {
        artifact = 'com.google.protobuf:protoc:3.3.0'
    }
    plugins {
        javalite {
            artifact = "com.google.protobuf:protoc-gen-javalite:3.0.0"
        }
        grpc {
            artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}"
        }
    }
    generateProtoTasks {
        all().each { task ->
            task.plugins {
                javalite {}
                grpc {
                    // Options added to --grpc_out
                    option 'lite'
                }
            }
        }
    }
}

//
//        buildTypes {
//        release {
//            minifyEnabled false
//            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
//        }
//    }
//    compileOptions {
//        targetCompatibility 1.6
//        sourceCompatibility 1.6
//    }
//}

dependencies {
    //    compile 'com.android.support:support-v4:18.0.0'
    //    compile 'com.android.support:appcompat-v7:24.2.1'
//    compile 'com.google.apis:google-api-services-speech:v1-rev8-1.22.0'
    compile group: 'com.google.cloud', name: 'google-cloud-speech', version: '0.17.1-alpha'
//    compile 'com.google.android.gms:play-services:11.0.2'
    compile project(':lib')    //This is someother library I'm using
    compile 'com.android.support:appcompat-v7:25.3.1'
    compile 'io.grpc:grpc-core:1.4.0'

    // Support libraries
    compile "com.android.support:design:$supportLibraryVersion"
    compile "com.android.support:cardview-v7:$supportLibraryVersion"
    compile "com.android.support:recyclerview-v7:$supportLibraryVersion"

    // gRPC
    compile "io.grpc:grpc-okhttp:$grpcVersion"
    compile "io.grpc:grpc-protobuf-lite:$grpcVersion"
    compile "io.grpc:grpc-stub:$grpcVersion"
    compile 'javax.annotation:javax.annotation-api:1.2'
    protobuf 'com.google.protobuf:protobuf-java:3.3.1'

    // OAuth2 for Google API
    compile('com.google.auth:google-auth-library-oauth2-http:0.7.0') {
        exclude module: 'httpclient'
    }

    // Tests
    testCompile 'junit:junit:4.12'
    androidTestCompile 'com.android.support.test:runner:0.5'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
}

build.gradle(Project: ProjectNAME):

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
        maven { url 'https://maven.google.com' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        // for gRPC
        classpath "com.google.protobuf:protobuf-gradle-plugin:0.8.0"
//        compile 'com.github.adrielcafe:AndroidAudioConverter:0.0.8'
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url 'https://maven.google.com' }
        maven {
            url "https://jitpack.io"
        }
    }
}

Now, When I try to import com.google.cloud.speech.v1.SpeechGrpc; I'm getting an error Cannot resolve symbol 'SpeechGrpc'. But import com.google.cloud.speech.v1.RecognitionAudio or RecognizeRequest etcetera works fine.

I've tried adding the expample project's app module as module which didn't allow me to use even import com.google.cloud. So, I either need solution to import Grpc or correct gradle settings to use google's speech API

Jehanna answered 4/7, 2017 at 19:45 Comment(6)
Tezz, how did you solved it?Contrayerva
Below solution worked for me.Jehanna
it still didnt solve this one: import com.google.cloud.speech.v1.SpeechClient; any solution for that? @JehannaTalavera
@AtheelMassalha Back then, the accepted solution worked for me. You could try another beta dependency(not sure if it works) - compile "com.google.cloud:google-cloud-speech:0.61.0-beta"Jehanna
it works for all import but the "SpeechClient", I will try another beta and update. thanks. was you using "SpeechClient" ?Talavera
@Jehanna 0.61.0-beta works! thanks!Talavera
E
12

If you add the proto directory on GoogleCloudPlatform/android-docs-samples to your android application source(app/src/main/), it will work fine even though you don't write [compile group: 'com.google.cloud', name: 'google-cloud-speech', version: '0.17.1-alpha'] on your build.gradle(Module:app).

Ethylethylate answered 5/7, 2017 at 5:44 Comment(1)
great!!!! thanks! it still didnt solve this one: import com.google.cloud.speech.v1.SpeechClient; any solution for that? @Jehanna ?Talavera
C
4

Add the following dependency in your build.gradle.

implementation 'com.google.api.grpc:grpc-google-cloud-speech-v1:1.23.0';
Cyd answered 16/5, 2020 at 20:24 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.