Не удается импортировать com.google.cloud.speech.v1.SpeechGrpc в Android

Я пытаюсь использовать Google Speech API в Android. проект. Пример проекта работает. У меня возникли проблемы с его использованием в моем собственном приложении для Android.

build.gradle (модуль: приложение):

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 (Проект: 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"
        }
    }
}

Теперь, когда я пытаюсь import com.google.cloud.speech.v1.SpeechGrpc;, я получаю сообщение об ошибке Cannot resolve symbol 'SpeechGrpc'. Но import com.google.cloud.speech.v1.RecognitionAudio или RecognizeRequest и так далее работают нормально.

Я попытался добавить модуль приложения example проекта как модуль, который не позволял мне использовать даже import com.google.cloud. Итак, мне нужно либо решение для импорта Grpc, либо правильные настройки градиента для использования голосового API Google.


person tezz    schedule 04.07.2017    source источник
comment
Тезз, как ты ее решил?   -  person Sar    schedule 25.07.2017
comment
Решение ниже сработало для меня.   -  person tezz    schedule 29.07.2017
comment
это все еще не решило: import com.google.cloud.speech.v1.SpeechClient; любое решение для этого? @тезз   -  person Atheel Massalha    schedule 13.12.2018
comment
@AtheelMassalha Тогда принятое решение сработало для меня. Вы можете попробовать другую бета-зависимость (не уверен, что она работает) - скомпилируйте com.google.cloud:google-cloud-speech:0.61.0-beta   -  person tezz    schedule 13.12.2018
comment
это работает для всего импорта, кроме SpeechClient, я попробую еще одну бета-версию и обновлю. Благодарю. Вы использовали SpeechClient?   -  person Atheel Massalha    schedule 13.12.2018
comment
@tezz 0.61.0-beta работает! Спасибо!   -  person Atheel Massalha    schedule 13.12.2018


Ответы (2)


Если вы добавите каталог proto на GoogleCloudPlatform/android-docs-samples в исходный код приложения для Android (app/src/main/), он будет работать нормально, даже если вы не пишете [compile группа: «com.google.cloud», имя: «google-cloud-speech», версия: «0.17.1-alpha»] на вашем build.gradle (модуль: приложение).

person JAEMOON HWANG    schedule 05.07.2017
comment
здорово!!!! Спасибо! это все еще не решило: import com.google.cloud.speech.v1.SpeechClient; любое решение для этого? @тэзз ? - person Atheel Massalha; 13.12.2018

Добавьте следующую зависимость в файл build.gradle.

implementation 'com.google.api.grpc:grpc-google-cloud-speech-v1:1.23.0';
person Yashaswi N P    schedule 16.05.2020