Status Update
Comments
xa...@google.com <xa...@google.com>
to...@gmail.com <to...@gmail.com> #2
Here is the stacktrace:
java.lang.VerifyError: Verifier rejected class WN: android.app.Notification$Style WN.h(android.app.Person, android.app.PendingIntent) failed to verify: android.app.Notification$Style WN.h(android.app.Person, android.app.PendingIntent): [0x4] can't resolve returned type 'Reference: android.app.Notification$Style' or 'Unresolved Reference: android.app.Notification$CallStyle' (declaration of 'WN' appears in base.apk!classes4.dex)
at Tj.<init>(SourceFile:17)
at kT1.<init>(SourceFile:23)
at aL1.<init>(SourceFile:293)
at bh4.get(SourceFile:1606)
at cL1.a(SourceFile:29)
at cL1.e(SourceFile:17)
at s1i.getValue(Unknown Source:17)
at dL1.a(SourceFile:11)
at RQ1.b(Unknown Source:2)
at EQ1.execute(SourceFile:15)
at lU1.handleMessage(SourceFile:18)
at android.os.Handler.dispatchMessage(Handler.java:106)
at N52.dispatchMessage(SourceFile:7)
at android.os.Looper.loop(Looper.java:237)
at android.os.HandlerThread.run(HandlerThread.java:67)
Unfortunately, I can't share the dex2oat
logs for this as I'm running into
je...@google.com <je...@google.com> #3
Thanks for the report. Can you share the APK failing and give suggestions to force the error such that I can see the entire logcat on device. The outline is looking correct so I believe the error is someplace else and logcat will show that.
to...@gmail.com <to...@gmail.com> #4
I shared the APK and instructions to reproduce over email. Let me know if you have any trouble reproing the crash.
ds...@gmail.com <ds...@gmail.com> #5
Thank you for the dump and information. Turns out that behavior of the verifier changed on Android 11 and 12 but was reverted again. I am working on a fix that should be easy to merge to the 4.0 branch.
Note that the verification error is actually also easy to create by manual outlining, but our pattern just emphasize it.
je...@google.com <je...@google.com> #6
Branch: main
commit b7b22190797c9b74218fb1d2fdfb497a9be9fb3b
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Mon Mar 20 13:03:38 2023
[ApiModel] Insert CheckCast for return values causing verification error
Bug:
Change-Id: I2479d669217d90f057fa248fcea0f0f27faf91a6
M src/main/java/com/android/tools/r8/androidapi/ComputedApiLevel.java
M src/main/java/com/android/tools/r8/ir/code/Return.java
M src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
M src/main/java/com/android/tools/r8/ir/desugar/apimodel/ApiInvokeOutlinerDesugaring.java
A src/main/java/com/android/tools/r8/ir/optimize/RemoveVerificationErrorForUnknownReturnedValues.java
M src/main/java/com/android/tools/r8/utils/AndroidApiLevelUtils.java
M src/main/java/com/android/tools/r8/utils/InternalOptions.java
M src/test/java/com/android/tools/r8/apimodel/ApiModelManualOutlineWithUnknownReturnTypeTest.java
M src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineHorizontalMergingTest.java
M src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineInstanceInitializerTest.java
M src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineWithUnknownReturnTypeTest.java
ds...@gmail.com <ds...@gmail.com> #7
Branch: main
commit 88dd6ed0006725301bcbe88942e474569c9aa1b1
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Mon Mar 20 12:43:54 2023
[ApiModel] Add tests for introducing verification issues when outlining
Bug:
Change-Id: I5684a12bf42422bb96122422e063ffd0503fb5e5
M src/main/java/com/android/tools/r8/utils/AndroidApiLevel.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelManualOutlineWithUnknownReturnTypeTest.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineWithUnknownReturnTypeTest.java
je...@google.com <je...@google.com> #8
thanks for the fix. if this can be backported to 4.0 that would be great
ds...@gmail.com <ds...@gmail.com> #9
Branch: 8.0
commit e1cdcb66b3a225076a41b646a2684d150a594693
Author: Rico Wind <ricow@google.com>
Date: Tue Mar 21 18:58:29 2023
Version 8.0.39
Bug:
Change-Id: Iad8a15631027cf587871f6c8df12a8b4c601296c
M src/main/java/com/android/tools/r8/Version.java
je...@google.com <je...@google.com> #10
Branch: 8.0
commit 7248df9f87378eda019093887585afba9631a669
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Tue Mar 21 13:59:20 2023
[ApiModel] Insert CheckCast for return values causing verification error
Bug:
Change-Id: I2479d669217d90f057fa248fcea0f0f27faf91a6
M src/main/java/com/android/tools/r8/androidapi/ComputedApiLevel.java
M src/main/java/com/android/tools/r8/ir/code/Return.java
M src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
M src/main/java/com/android/tools/r8/ir/desugar/apimodel/ApiInvokeOutlinerDesugaring.java
A src/main/java/com/android/tools/r8/ir/optimize/RemoveVerificationErrorForUnknownReturnedValues.java
M src/main/java/com/android/tools/r8/utils/AndroidApiLevelUtils.java
M src/main/java/com/android/tools/r8/utils/InternalOptions.java
M src/test/java/com/android/tools/r8/apimodel/ApiModelManualOutlineWithUnknownReturnTypeTest.java
M src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineHorizontalMergingTest.java
M src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineInstanceInitializerTest.java
M src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineWithUnknownReturnTypeTest.java
al...@google.com <al...@google.com>
je...@google.com <je...@google.com> #11
Branch: 8.0
commit 4c0694de75503094bb84d6e28fd091453b172e2e
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Tue Mar 21 13:59:12 2023
[ApiModel] Add tests for introducing verification issues when outlining
Bug:
Change-Id: I5684a12bf42422bb96122422e063ffd0503fb5e5
M src/main/java/com/android/tools/r8/utils/AndroidApiLevel.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelManualOutlineWithUnknownReturnTypeTest.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineWithUnknownReturnTypeTest.java
al...@google.com <al...@google.com> #12
Branch: 4.0
commit 4fe0ece4d3da01068bf0b63cd7a5f37d47fa6244
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Wed Mar 22 16:30:30 2023
[ApiModel] Add tests for introducing verification issues when outlining
Bug:
Change-Id: I5684a12bf42422bb96122422e063ffd0503fb5e5
M src/main/java/com/android/tools/r8/utils/AndroidApiLevel.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelManualOutlineWithUnknownReturnTypeTest.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineWithUnknownReturnTypeTest.java
M src/test/java/com/android/tools/r8/apimodel/ApiModelingTestHelper.java
al...@google.com <al...@google.com> #13
Branch: 4.0
commit 1e7c88c78ac0636eae649e132b862306ea416d48
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Wed Mar 22 16:30:43 2023
Version 4.0.58
Bug:
Change-Id: If899ee42bdf757985546807d785639e98b3360e6
M src/main/java/com/android/tools/r8/Version.java
al...@google.com <al...@google.com>
to...@gmail.com <to...@gmail.com> #14
Branch: 4.0
commit b367460c6cab514f9c8c974f2a48e7ed862610de
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Wed Mar 22 16:30:37 2023
[ApiModel] Insert CheckCast for return values causing verification error
Bug:
Change-Id: I2479d669217d90f057fa248fcea0f0f27faf91a6
M src/main/java/com/android/tools/r8/androidapi/ComputedApiLevel.java
M src/main/java/com/android/tools/r8/ir/code/Return.java
M src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
M src/main/java/com/android/tools/r8/ir/desugar/apimodel/ApiInvokeOutlinerDesugaring.java
A src/main/java/com/android/tools/r8/ir/optimize/RemoveVerificationErrorForUnknownReturnedValues.java
M src/main/java/com/android/tools/r8/utils/AndroidApiLevelUtils.java
M src/main/java/com/android/tools/r8/utils/InternalOptions.java
M src/test/java/com/android/tools/r8/apimodel/ApiModelManualOutlineWithUnknownReturnTypeTest.java
M src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineWithUnknownReturnTypeTest.java
to...@gmail.com <to...@gmail.com> #15
I've backported the fix to version 4.0.58. Could you take that version for a spin to see if that solves the issues?
Description
For single file artifact like bundle
variant.artifacts.use(updateBundleArtifact)
.wiredWithFiles(
UpdateArtifactTask::initialArtifact,
UpdateArtifactTask::updatedArtifact
)
.toTransform(ArtifactType.BUNDLE)
it set this value
originalArtifact: app\build\outputs\bundle\debug\signDebugBundle\app-debug.aab
updatedArtifact: app\build\outputs\bundle\debug\debugUpdateArtifact\out
There are more weird things:
- why there is this "sign" prefix for the original file? It should be just "debugBundle"
- why output file is "out". and not app-debug.aab
- According to Xavier Ducrohet only the final artifact should be inside of outputs folder
- Then I don't see the reason for changing the name of the folder debugBundle to debugUpdateArtifact (if only final artifact should be there), it will really help with old plugins that will not use new variant API and will depend on the hardcoded path.
- I would really appreciate if there will be also the possibility to change the name of the output artifact during this transform, not the only file content.
And when I use this
variant.artifacts.use(updateApkArtifact)
.wiredWithDirectories(
UpdateDirArtifactTask::inputDir,
UpdateDirArtifactTask::outputDir
)
.toTransform(ArtifactType.APK)
It set this
Input folder: app\build\outputs\apk\debug
Output folder: app\build\intermediates\apk\debug\debugUpdateAPKArtifact
- output folder is inside of intermediates instead of input one
- also here I would expect that the output folder will be the same as the normal output folder for APK without transformation (for last one transformation in the chain). Why another level of the hierarchy?
There is one more unexpected thing that
val artifacts = builtArtifactsLoader.get().load(inputDir.get())
artifacts?.elements?.forEach {
it.outputFile is just String. I would expect File there.
Build: AI-202.7660.26.42.6987402, 202011210045,
AI-202.7660.26.42.6987402, JRE 11.0.8+10-b944.6842174x64 JetBrains s.r.o, OS Windows 10(amd64) v10.0 , screens 2560x1440, 2560x1440
AS: 4.2 Beta 1; Kotlin plugin: 1.4.20-release-Studio4.2-1; Android Gradle Plugin: 4.2.0-beta01; Gradle: 6.7; NDK: from local.properties: (not specified), latest from SDK: (not found); LLDB: pinned revision 3.1 not found, latest from SDK: (package not found); CMake: from local.properties: (not specified), latest from SDK: (not found), from PATH: (not found)
IMPORTANT: Please read