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

标签 android android-studio gradle build.gradle gradle-plugin

我已经将我的 android studio 更新到 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')

}

我没有使用 Kotlin 。 我检查了如下各种资源,但都没有用

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

Android Studio 3.0 - Unable to find method 'com.android.build.gradle.internal.variant.BaseVariantData.getOutputs()Ljava/util/List'

也试过 重新下载依赖并同步工程 & 停止 Gradle 构建过程(需要重启) 但都没有用。

项目级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 - 无法找到方法 'com.android.tools.r8.Version.getVersionString()Ljava/lang/String;',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56232455/

相关文章:

eclipse - 当我调试我的应用程序时,我经常遇到启动错误 : Failed to connect to remote VM

android - 高分辨率和中分辨率的 android 视频大小?

android - 如何在android中的tablerow右侧显示textview

Flutter - FAILURE : Build failed with an exception. - 无法启动守护进程。 - 安卓工作室 - VSCode

android - 在 android studio 上导入 Gradle 项目失败

Android如何根据背景图片改变文字颜色

android - 如何从 Android Studio 中的 Android Monitor 获取 Android 应用程序的平均 CPU 和内存使用率?

java - 如何找到观察 LiveData 的位置

android - 找不到 opencv.hpp?安卓NDK

java - 我如何让 XJC ant 任务使用多个绑定(bind)文件?