Status Update
Comments
ri...@google.com <ri...@google.com> #2
Thank you for the report. This looks looks like something in the class file that our class file verification cannot handle. The failing_bytecode.txt
does not have all the details, so will it be possible for you to share the binary class file for the class kbbbbb.kggkkk
? You can share it privately with javap
with the -v
option (javap -v -cp <the jar> kbbbbb.kggkkk
.
The deobfuscated R8 stack trace is:
Caused by: com.android.tools.r8.errors.Unreachable: Invalid descriptor char 'N'
at com.android.tools.r8.ir.code.MemberType.fromTypeDescriptorChar(MemberType.java:98)
at com.android.tools.r8.ir.code.MemberType.fromDexType(MemberType.java:103)
at com.android.tools.r8.graph.CfCode.isAssignable(CfCode.java:918)
at com.android.tools.r8.graph.CfCode.lambda$isAssignablePredicate$8(CfCode.java:887)
at com.android.tools.r8.cf.code.CfFrameVerificationHelper.canBeAssigned(CfFrameVerificationHelper.java:375)
at com.android.tools.r8.cf.code.CfFrameVerificationHelper.verifyStackIsAssignable(CfFrameVerificationHelper.java:320)
at com.android.tools.r8.cf.code.CfFrameVerificationHelper.verifyIsAssignable(CfFrameVerificationHelper.java:264)
at com.android.tools.r8.cf.code.CfFrameVerificationHelper.verifyFrame(CfFrameVerificationHelper.java:213)
at com.android.tools.r8.cf.code.CfFrameVerificationHelper.verifyFrame(CfFrameVerificationHelper.java:209)
at com.android.tools.r8.cf.code.CfFrameVerificationHelper.verifyFrameAndSet(CfFrameVerificationHelper.java:169)
at com.android.tools.r8.cf.code.CfFrame.evaluate(CfFrame.java:454)
at com.android.tools.r8.graph.CfCode.verifyFrames(CfCode.java:782)
at com.android.tools.r8.graph.CfCode.verifyFramesOrRemove(CfCode.java:412)
at com.android.tools.r8.graph.CfCode.buildIR(CfCode.java:386)
at com.android.tools.r8.graph.LazyCfCode.buildIR(LazyCfCode.java:215)
at com.android.tools.r8.graph.ProgramMethod.buildIR(ProgramMethod.java:25)
at com.android.tools.r8.ir.conversion.IRConverter.rewriteCodeInternal(IRConverter.java:1122)
at com.android.tools.r8.ir.conversion.IRConverter.lambda$rewriteCode$13(IRConverter.java:1088)
at com.android.tools.r8.utils.ExceptionUtils.withOriginAndPositionAttachmentHandler(ExceptionUtils.java:220)
at com.android.tools.r8.ir.conversion.IRConverter.rewriteCode(IRConverter.java:1085)
at com.android.tools.r8.ir.conversion.IRConverter.convertMethod(IRConverter.java:535)
at com.android.tools.r8.ir.conversion.IRConverter.lambda$convertMethods$2(IRConverter.java:516)
at com.android.tools.r8.graph.DexProgramClass.lambda$forEachProgramMethodMatching$1(DexProgramClass.java:154)
at com.android.tools.r8.graph.MethodCollection.lambda$forEachMethodMatching$0(MethodCollection.java:96)
at com.android.tools.r8.graph.MethodCollectionBacking.lambda$forEachMethod$0(MethodCollectionBacking.java:51)
at com.android.tools.r8.graph.MethodArrayBacking.traverse(MethodArrayBacking.java:65)
at com.android.tools.r8.graph.MethodCollectionBacking.forEachMethod(MethodCollectionBacking.java:48)
at com.android.tools.r8.graph.MethodCollectionBacking.forEachMethod(MethodCollectionBacking.java:44)
at com.android.tools.r8.graph.MethodCollection.forEachMethodMatching(MethodCollection.java:93)
at com.android.tools.r8.graph.DexProgramClass.forEachProgramMethodMatching(DexProgramClass.java:153)
at com.android.tools.r8.ir.conversion.IRConverter.convertMethods(IRConverter.java:511)
at com.android.tools.r8.utils.ThreadUtils.lambda$processItems$4(ThreadUtils.java:59)
at com.android.tools.r8.utils.ThreadUtils.lambda$processItems$6(ThreadUtils.java:84)
at com.android.tools.r8.utils.ThreadUtils.lambda$processItemsWithResults$2(ThreadUtils.java:51)
at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125)
at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69)
at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78)
at com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:322)
at com.google.common.util.concurrent.AbstractListeningExecutorService.submit(AbstractListeningExecutorService.java:66)
at com.google.common.util.concurrent.AbstractListeningExecutorService.submit(AbstractListeningExecutorService.java:36)
at com.android.tools.r8.utils.ThreadUtils.lambda$processItemsWithResults$3(ThreadUtils.java:51)
at com.android.tools.r8.utils.ThreadUtils.processItemsWithResults(ThreadUtils.java:48)
at com.android.tools.r8.utils.ThreadUtils.processItems(ThreadUtils.java:81)
at com.android.tools.r8.utils.ThreadUtils.processItems(ThreadUtils.java:67)
at com.android.tools.r8.utils.ThreadUtils.processItems(ThreadUtils.java:59)
at com.android.tools.r8.ir.conversion.IRConverter.convert(IRConverter.java:476)
at com.android.tools.r8.D8.run(D8.java:209)
at com.android.tools.r8.D8.lambda$run$1(D8.java:119)
at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:70)
at com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(ExceptionUtils.java:54)
at com.android.tools.r8.D8.run(D8.java:116)
at com.android.builder.dexing.D8DexArchiveBuilder.convert(D8DexArchiveBuilder.java:116)
This is the exception:
ch...@google.com <ch...@google.com>
ri...@google.com <ri...@google.com>
ri...@google.com <ri...@google.com> #3
Sent over the class file via email, thanks!
ri...@google.com <ri...@google.com> #4
Thank you for the file - was able to reproduce it and have a fix ready. Will report back when the fix has been backported to 2.2
ri...@google.com <ri...@google.com> #5
Branch: master
commit e264cf81d23c15fa6295f979973b40b59ea2be81
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Nov 20 19:03:26 2020
Add test for invalid bytecode expecting null in stackmap
Bug: 173598082
Change-Id: I0b322eab037f7e4f73175559d6880438232cb831
A src/test/java/com/android/tools/r8/cf/stackmap/SwitchStackFrameFallThroughTest.java
lo...@gmail.com <lo...@gmail.com> #6
Branch: master
commit 7bb8bc8b32c44ad51ca7cf5d77527fe208f292a8
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Mon Nov 23 11:36:44 2020
Set no frame after seeing a CF switch
Bug: 173598082
Change-Id: Id6bd35f38bb10ac7ed5370ef3af06dbff8805f36
M src/main/java/com/android/tools/r8/cf/code/CfSwitch.java
M src/test/java/com/android/tools/r8/cf/stackmap/SwitchStackFrameFallThroughTest.java
ch...@google.com <ch...@google.com> #7
Branch: 2.2
commit 01ec2fa75e4147a7193f0871c3b5bfb70fa942f0
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Tue Nov 24 10:58:51 2020
Version 2.2.45
Bug: 173678465
Bug: 173598082
Change-Id: I499102f282857851061cd199be11c16703fdaf44
M src/main/java/com/android/tools/r8/Version.java
lo...@gmail.com <lo...@gmail.com> #8
Branch: 2.2
commit f0d405e7368cfb096462445b6f2c5feb4b985d70
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Tue Nov 24 10:57:00 2020
Set no frame after seeing a CF switch
Bug: 173598082
Change-Id: Id6bd35f38bb10ac7ed5370ef3af06dbff8805f36
M src/main/java/com/android/tools/r8/cf/code/CfSwitch.java
M src/test/java/com/android/tools/r8/cf/stackmap/SwitchStackFrameFallThroughTest.java
sg...@google.com <sg...@google.com> #9
Branch: 2.2
commit 49c11952c279ba5b113bd099587e7f6cd62dddc0
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Tue Nov 24 10:56:22 2020
Add test for invalid bytecode expecting null in stackmap
Bug: 173598082
Change-Id: I0b322eab037f7e4f73175559d6880438232cb831
A src/test/java/com/android/tools/r8/cf/stackmap/SwitchStackFrameFallThroughTest.java
Description
I am experiencing app crash after minifying with R8. Unfortunately I can't to test with Proguard because of this issue [
Sources:
Stacktrace:
Fatal Exception: java.lang.VerifyError: kotlinx/coroutines/AbstractCoroutine
at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(BuildersKt__Builders_commonKt.java:53)
at kotlinx.coroutines.BuildersKt.launch(BuildersKt.java:1)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(BuildersKt__Builders_commonKt.java:47)
at kotlinx.coroutines.BuildersKt.launch$default(BuildersKt.java:1)
at com.arcao.geocaching4locus.base.BaseViewModel.mainLaunch(BaseViewModel.java:33)
at com.arcao.geocaching4locus.dashboard.DashboardViewModel.onClickLiveMap(DashboardViewModel.java:52)
at com.arcao.geocaching4locus.databinding.ActivityDashboardBindingImpl._internalCallbackOnClick(ActivityDashboardBindingImpl.java:315)
at com.arcao.geocaching4locus.generated.callback.OnClickListener.onClick(OnClickListener.java:11)
at android.view.View.performClick(View.java:4204)
at android.widget.CompoundButton.performClick(CompoundButton.java:100)
at android.view.View$PerformClick.run(View.java:17355)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(NativeStart.java)