我正在尝试构建签名版本(发行版),但出现以下错误
@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
答案 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
没有增加一次又一次的实用性。