Cannot import com.google.cloud.speech.v1.SpeechGrpc in Android

匿名 (未验证) 提交于 2019-12-03 08:56: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

回答1:

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).



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!