无法找到方法 'com.android.tools.r8.Version.getVersionString()Ljava/lang/String;'

Unable to find method 'com.android.tools.r8.Version.getVersionString()Ljava/lang/String;'

我已将我的 android 工作室更新到 3.4。 我在制作发布版本时遇到错误。

Unable to find method 
'com.android.tools.r8.Version.getVersionString()Ljava/lang/String;'.
Possible causes for this unexpected error include:
Gradle's dependency cache may be corrupt (this sometimes occurs after 
a network connection timeout.)
Re-download dependencies and sync project (requires network)

The state of a Gradle build process (daemon) may be corrupt. Stopping 
all Gradle daemons may solve this problem.
Stop Gradle build processes (requires restart)

Your project may be using a third-party plugin which is not compatible 
with the other plugins in the project or the version of Gradle 
requested by the project.

In the case of corrupt Gradle processes, you can also try closing the 
IDE and then killing all Java processes.

我已经在 gradle 中更新了我的依赖项 这是我的 gradle 文件

dependencies {
//Retrofit networking libraries
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation 'com.squareup.retrofit2:adapter-rxjava:2.4.0'
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
//Use for converting JsonObject to Plain Text in retrofit
implementation 'com.squareup.retrofit2:converter-scalars:2.1.0'
//http logging interceptor
implementation 'com.squareup.okhttp3:logging-interceptor:3.8.0'
// For circular progressbar design
implementation 'me.relex:circleindicator:1.2.2@aar'

//Crashlytics library dependency
implementation('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') {
    transitive = true;
}
//ViewModel concept used in 
implementation 'android.arch.lifecycle:extensions:1.1.1'
implementation 'android.arch.lifecycle:livedata-core:1.1.1'

//RangeSeekBar Design 
implementation 'com.yahoo.mobile.client.android.util.rangeseekbar:rangeseekbar-library:0.1.0'

//Clevertap events
implementation 'com.clevertap.android:clevertap-android-sdk:3.2.0'

//For volley networking library implementation
implementation 'com.android.volley:volley:1.1.0'
//For token passing classes
implementation 'com.auth0.android:jwtdecode:1.1.1'
//Rooted device finding library
implementation 'com.scottyab:rootbeer-lib:0.0.7'

//Facebook integration
implementation 'com.facebook.android:facebook-android-sdk:4.35.0'
//New Relic interation library
implementation 'com.newrelic.agent.android:android-agent:5.9.0'

//Calender library
implementation project(':library')
//Channel level encryption library
implementation files('libs/bcprov-jdk15on-160.jar')
//Injection tool
annotationProcessor 'com.jakewharton:butterknife:6.1.0'
implementation 'com.jakewharton:butterknife:6.1.0'

/*annotationProcessor 'com.jakewharton:butterknife:10.1.0'
implementation 'com.jakewharton:butterknife:10.1.0'*/

//Image Loading library
implementation 'com.github.bumptech.glide:glide:3.7.0'
//Secure SQLite Database
implementation 'net.zetetic:android-database-sqlcipher:3.5.9@aar'
//Branch .io library
implementation('io.branch.sdk.android:library:2.+') {
    exclude module: 'answers.shim'
}

//noinspection GradleCompatible

implementation 'com.android.support:appcompat-v7:26.0.2'
implementation 'com.android.support:design:26.0.2'
implementation 'com.google.android.gms:play-services:11.0.1'
implementation 'com.google.android.gms:play-services-maps:11.0.1'
implementation 'com.google.firebase:firebase-core:11.0.1'
implementation 'com.google.firebase:firebase-messaging:11.0.1'
implementation 'com.android.support:support-v4:26.0.2'
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation project(':mpointintegration')

}

我没有使用科特林。 我检查了如下各种资源,但 none 有效

java.lang.NoSuchMethodError - Ljava/lang/String;)Ljava/lang/String;

也试过 重新下载依赖并同步工程 & 停止 Gradle 构建进程(需要重新启动) 但是 none 有效。

项目级别gradle文件

// Top-level build file where you can add configuration options common 
to all sub-projects/modules.

buildscript {
repositories {
    jcenter()
    mavenCentral()
    google()
    maven { url "http://storage.googleapis.com/r8-releases/raw"}
}
dependencies {
    classpath ('com.android.tools:r8:1.3.52' ) { transitive false }
    classpath 'com.android.tools.build:gradle:3.4.0'
    classpath 'com.google.gms:google-services:4.2.0'
    classpath "com.newrelic.agent.android:agent-gradle-plugin:5.9.0"
    // NOTE: Do not place your application dependencies here; they 
belong
    // in the individual module build.gradle files
}
}


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

   // maven { url 'https://jitpack.io' }
    google()
}
}
ext {
 minSdkVersion = 15
 targetSdkVersion = 26
 compileSdkVersion = 26
 buildToolsVersion = '26.0.2'
 sourceCompatibilityVersion = JavaVersion.VERSION_1_8
 targetCompatibilityVersion = JavaVersion.VERSION_1_8
 }
 task clean(type: Delete) {
 delete rootProject.buildDir
 }
 ext.deps = [
    // Test dependencies
    junit      : 'junit:junit:4.10',
    festandroid: 'com.squareup:fest-android:1.0.7',
    robolectric: 'org.robolectric:robolectric:2.2',
    intellijannotations: 'com.intellij:annotations:12.0'
 ]

问题是您对 R8 1.3.52 有固定的版本依赖:

classpath ('com.android.tools:r8:1.3.52' ) { transitive false }

com.android.tools.r8.Version方法

public String getVersionString()

仅存在于R8 1.4及以上版本。

我假设您使用的是固定版本的 R8,因为该版本中修复了错误。然而,这也应该在最新版本中得到修复,所以我建议您删除固定的 R8 版本依赖项并使用 Android Studio 附带的内容。

我解决了。从 android studio 3.4 R8 版本添加到 android studio。 所以我在 build.gradle 文件和 gradle.properties 文件

中做了一些更改

在我的应用级别 build.gradle 文件的发布部分我添加了一行

useProguard false

& 在 gradle.properties 文件中

android.enableR8=true

因此它将使用 R8 版本控制来创建我的 APK。

如果您不想使用 R8 版本控制并想继续使用 proguard,请制作

 android.enableR8=false //in gradle.properties file

希望这对某人有所帮助