Status Update
Comments
ch...@google.com <ch...@google.com>
ch...@google.com <ch...@google.com> #2
Thank you for posting an issue. It is not obvious to me what the error is, please give some more information, ideally a
If you cannot provide a dump, please share the full stack trace and potentially the classes that are failing if that is available from the information you have. You can probably obtain it by running the release process from the command line.
The Expected stack map table for method with non-linear control flow.
is because you have invalid class file input. It is an error to not provide frame information in jumps and has been so from class file version 50.
ap...@google.com <ap...@google.com> #3
ap...@google.com <ap...@google.com> #4
If the issue re-appears feel free to re-open the bug.
ap...@google.com <ap...@google.com> #5
The application I'm working on is getting the same error after upgrading Gradle and the Gradle Plugin (7.4.1). Very little info online about this. Let me know what info I can provide; it seems like a legitimate issue given that multiple people are reporting it.
The application I'm working on is not using androidx.multidex:multidex like the other user.
> Task :app:dexBuilderDebug FAILED
AGPBI: {"kind":"error","text":"com.android.tools.r8.internal.Fq: No VersionRequirement with the given id in the table","sources":[{}],"tool":"D8"}
AGPBI: {"kind":"error","text":"com.android.tools.r8.internal.Fq: No VersionRequirement with the given id in the table","sources":[{}],"tool":"D8"}
com.android.tools.r8.internal.Fq: No VersionRequirement with the given id in the table
Execution failed for task ':app:dexBuilderDebug'.
> Could not resolve all files for configuration ':app:detachedConfiguration3'.
> Failed to transform jetified-anko-sdk25-coroutines-0.10.3.jar to match attributes {artifactType=ext-dex-dexBuilderDebug, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}.
> Execution failed for DexingExternalLibArtifactTransform: /Users/.../.gradle/caches/transforms-3/17e3e87543b7bc6c15b2729175c4f93a/transformed/jetified-anko-sdk25-coroutines-0.10.3.jar.
> Error while dexing.
> Failed to transform jetified-anko-appcompat-v7-coroutines-0.10.3.jar to match attributes {artifactType=ext-dex-dexBuilderDebug, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}.
> Execution failed for DexingExternalLibArtifactTransform: /Users/.../.gradle/caches/transforms-3/192f3b6aa3588ba73225fa6268e99efa/transformed/jetified-anko-appcompat-v7-coroutines-0.10.3.jar.
> Error while dexing.
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
com.android.tools.r8.internal.Fq: No VersionRequirement with the given id in the table
I've tried invalidating caches as well as rebuilding the project.
Please let me know if I should open a separate ticket!
ap...@google.com <ap...@google.com> #6
Would it be possible to provide a
Potentially I only need /Users/.../.gradle/caches/transforms-3/17e3e87543b7bc6c15b2729175c4f93a/transformed/jetified-anko-sdk25-coroutines-0.10.3.jar
to reproduce the problem.
Are you using desugared library? Is this R8 or D8 (minifyEnabled = true
)?
ap...@google.com <ap...@google.com> #8
I tried to look for the library for which the issue is reported adding the dependency implementation 'org.jetbrains.anko:anko-sdk25-coroutines:0.10.3'
to a project. However that artifact is not found on the usual Maven repos, and jetified-anko-sdk25-coroutines-0.10.3.jar
will be needed to make progress.
ap...@google.com <ap...@google.com> #9
Branch: main
commit f631bcf3e4e0a2bb02323de96ba26acdba5e8014
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Mon Mar 20 14:00:12 2023
Clean-up parsing kotlin metadata to not throw exception in thread
Bug:
Change-Id: I42c5e986d3b0ea9448bc7a6512934283f88f92c9
M src/main/java/com/android/tools/r8/kotlin/KotlinClassMetadataReader.java
M src/main/java/com/android/tools/r8/kotlin/KotlinMetadataEnqueuerExtension.java
M src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java
M src/main/java/com/android/tools/r8/utils/BooleanBox.java
ap...@google.com <ap...@google.com> #10
The error is that old kotlin compilers would generate synthetic lambdas with version requirement: 0
as default but it actually should just be empty. An issue was reported on kotlin here:
This is fixed from 1.3.40-dev and forward. The synthetic lambda that fails has metadata version 1.1.15 and therefore compiled by a compiler that generated the invalid entry in version requirement.
We should not throw an error that fails compilation in D8. This is fixed ToT and I will cherry-pick to our release branches.
ap...@google.com <ap...@google.com> #11
Branch: 8.0
commit 6bd39cff22a1ebcd7593622b25fc8cbad2a6d655
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Mon Mar 20 15:34:12 2023
Clean-up parsing kotlin metadata to not throw exception in thread
Bug:
Change-Id: I42c5e986d3b0ea9448bc7a6512934283f88f92c9
M src/main/java/com/android/tools/r8/kotlin/KotlinClassMetadataReader.java
M src/main/java/com/android/tools/r8/kotlin/KotlinMetadataEnqueuerExtension.java
M src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java
M src/main/java/com/android/tools/r8/utils/BooleanBox.java
ap...@google.com <ap...@google.com> #12
Branch: 8.0
commit f8b4d858b23c7b59eb4c8357772ed6ad4406a7d7
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Mon Mar 20 15:34:26 2023
Version 8.0.36
Bug:
Change-Id: I155be22a9466968f82f4d450861670332754f91a
M src/main/java/com/android/tools/r8/Version.java
ap...@google.com <ap...@google.com> #13
I will add in manually for now. I can also confirm that the fix works when added manually like:
buildscript {
repositories {
maven {
url '
}
}
}
dependencies {
classpath 'com.android.tools:r8:8.0.36'
}
ap...@google.com <ap...@google.com> #14
Our 8.0 branch corresponds to Android Studio Flamingo, and it should be in for the final release.
ap...@google.com <ap...@google.com> #15
เรียนรู้แอนดรอยด์
ap...@google.com <ap...@google.com> #16
ch...@google.com <ch...@google.com> #17
This is fixed from AGP 8.0, so please ensure that version or higher is used.
bv...@gmail.com <bv...@gmail.com> #18
I just tested 4.0.53: on the sample project it also runs in ~3s in my machine. The larger project now finishes within a few minutes, and that previously took almost an hour, wow. Thanks!
Any idea when this fix will become available in the AGP? Next release of Android Studio, I assume?
ch...@google.com <ch...@google.com> #19
Thanks for the confirmation. This will hopefully make it into Flamingo (AGP 8.0).
Description
We're using Renderscript in one of our projects and noticed that our build times for a minified release build went up by a factor of 3 after upgrading the Android Gradle Plugin from 7.3.1 to 7.4.0: from 17 minutes to 53 minutes.
For each Renderscript file, two files are generated: a
ScriptC_$name
file which contains bridging functions, and a$nameBitCode
file which contains a few huge byte arrays that are compiled into GPU code on the user's phone. R8 takes a very long time to process this last file.I made a sample project here:https://github.com/bvschaik/r8-renderscript-minify-issue here .
This project contains a copy of the BitCode class that's generated by Renderscript
Using AGP 7.4.0 (uses R8 4.0.48), running assembleRelease on this project takes almost 4 minutes, with 3m40s taken up by the
minifyReleaseWithR8
task.Downgrading AGP to 7.3.1 (uses R8 3.3.83), the
minifyReleaseWithR8
"only" takes 1m10s, which is still quite long for processing some static byte arrays.For now we're forcing R8 to the last available 3.3 version to get back to acceptable build times.
What could cause this increase in build times?
Why is R8 spending so much time on relatively simple code?
What can we do to tell R8 "don't change anything in this file"? I tried various -keep rules but it didn't make a difference.