发布版本失败

时间:2018-07-06 09:49:52

标签: java android android-studio grpc protobuf-java

我正在尝试构建签名版本(发行版),但出现以下错误

@NoArgsConstructor

我试图清理,失效和删除gradle文件并重建它。 还更新为gRPC版本和protobuf的最新版本。 也尝试过此solution,但不起作用。

这是我的build.gradle(应用模块)文件

Duplicate zip entry [com/google/protobuf/d$1.class == com/google/protobuf/Any$1.class]

专业后卫

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


ext {
    supportLibraryVersion = '27.1.1'
    grpcVersion = '1.13.1'
    googlePlayVersion = '15.0.1'
    firebaseCoreVersion = '16.0.1'
    firebaseDataBaseVersion = '16.0.1'
    firebaseAuthVersion = '16.0.2'
    firebaseFirestoreVersion = "17.0.1"
    fireUIVersion = '4.0.1'
    facebookAuthVersion = '4.34.0'
    protobufVersion = '3.6.0'
    butterKnifeVersion = '8.8.1'
    glideVersion = '4.7.1'
    retrofitVersion = '2.4.0'
}

android {
    compileSdkVersion 27
    buildToolsVersion '27.0.3'

    defaultConfig {
       // app id
        targetSdkVersion 27
        versionCode 1
        versionName '1.0'
        multiDexEnabled true
        minSdkVersion 21
    }

    signingConfigs {
        release {
            storeFile file(project.properties.storeFile)
            storePassword project.properties.storePassword
            keyAlias project.properties.keyAlias
            keyPassword project.properties.keyPassword
        }
    }


    buildTypes {
        debug {
            minifyEnabled false

        }
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
    }
    compileOptions {
        sourceCompatibility = '1.8'
        targetCompatibility = '1.8'
    }

    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.6.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'
                }
            }
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    // Implementing my  libraries
    implementation project(path: ':CircularProgressBar')

    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.4'

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

    //PlayServices
    implementation "com.google.android.gms:play-services-auth:$googlePlayVersion"

    // FirebaseUI for Firebase Auth
    implementation "com.google.firebase:firebase-core:$firebaseCoreVersion"
    implementation "com.google.firebase:firebase-database:$firebaseDataBaseVersion"
    implementation "com.google.firebase:firebase-auth:$firebaseAuthVersion"
    implementation "com.google.firebase:firebase-firestore:$firebaseFirestoreVersion"
    implementation "com.firebaseui:firebase-ui-auth:$fireUIVersion"

    //FacebookAuth Login
    implementation "com.facebook.android:facebook-login:$facebookAuthVersion"

    //Jackson
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.9.0'
    implementation 'com.fasterxml.jackson.core:jackson-annotations:2.9.0'
    //Retrofit2
    implementation "com.squareup.retrofit2:retrofit:$retrofitVersion"
    implementation "com.squareup.retrofit2:converter-gson:$retrofitVersion"
    //SqlCipher
    implementation 'net.zetetic:android-database-sqlcipher:3.5.9@aar'

    //highlighter
    implementation 'com.xeoh.android:text-highlighter:1.0.2'

    //ButterKnife
    implementation "com.jakewharton:butterknife:$butterKnifeVersion"

    //Glide
    implementation "com.github.bumptech.glide:glide:$glideVersion"


    //SwipeReveal
    implementation "com.daimajia.swipelayout:library:1.2.0@aar"

    //JodaTime
    implementation 'joda-time:joda-time:2.10'
    //Gson
    implementation 'com.google.code.gson:gson:2.8.4'

    //Animation
    implementation 'at.wirecube:additive_animations:1.6.2'
    implementation 'com.wang.avi:library:2.1.3'

    //HorizontalCalendar
    implementation 'devs.mulham.horizontalcalendar:horizontalcalendar:1.3.4'


    // gRPC
    implementation "io.grpc:grpc-okhttp:$grpcVersion"
    implementation "io.grpc:grpc-protobuf-lite:$grpcVersion"
    implementation 'com.google.protobuf:protobuf-lite:3.0.1'
    implementation "io.grpc:grpc-stub:$grpcVersion"
    implementation 'javax.annotation:javax.annotation-api:1.2'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    protobuf "com.google.protobuf:protobuf-java:$protobufVersion"

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

    //Permissions
    implementation 'gun0912.ted:tedpermission:2.2.0'

    //String ratio search
    implementation 'me.xdrop:fuzzywuzzy:1.1.9'

    //Logger
    implementation 'com.orhanobut:logger:2.2.0'

    implementation 'com.intentfilter:android-permissions:0.1.7'
    // Annotation processors
    annotationProcessor "com.jakewharton:butterknife-compiler:$butterKnifeVersion"
    annotationProcessor "com.github.bumptech.glide:compiler:$glideVersion"
    //multiDex
    // implementation 'com.android.support:multidex:1.0.3'

    // Tests
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'



}

task copySecretKey(type: Copy) {
    def File secretKey = file "$System.env.GOOGLE_APPLICATION_CREDENTIALS"
    from secretKey.getParent()
    include secretKey.getName()
    into 'src/main/res/raw'
    rename secretKey.getName(), "credential.json"
}
preBuild.dependsOn(copySecretKey)

apply plugin: 'com.google.gms.google-services'

详细的运行过程错误:

-dontwarn com.google.common.**
-dontwarn com.google.api.client.**
-dontwarn com.google.protobuf.**
-dontwarn io.grpc.**
-dontwarn okio.**
-dontwarn com.google.errorprone.annotations.**
-keep class io.grpc.internal.DnsNameResolveProvider
-keep class io.grpc.okhttp.OkHttpChannelProvider

-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
-keep public class * extends java.lang.Exception

-printmapping mapping.txt

-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**
-dontwarn org.w3c.dom.bootstrap.DOMImplementationRegistry
-dontwarn com.fasterxml.**
-dontwarn okio.**
-dontwarn retrofit2.**
-dontwarn org.joda.convert.**
-dontwarn okhttp3.internal.platform.**
-ignorewarnings

1 个答案:

答案 0 :(得分:1)

问题是Firestore依赖关系,它添加了一个额外的protobuf lite依赖关系

    implementation("com.google.firebase:firebase-firestore:$firebaseFirestoreVersion") {
    exclude group: 'com.google.firebase', module: 'protolite-well-known-types'
    }

排除其他部分将解决问题。

要在Android Studio终端中检查冲突的付款方式

gradlew app:dependencies 

没有增加一次又一次的实用性。