无法找到方法 '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
希望这对某人有所帮助
我已将我的 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
希望这对某人有所帮助