Unresolved INVOKE_VIRTUAL_QUICK_ART mIdx=16 objReg=3, use Ljava/lang/String; to invoke (it may have exception but is expected)
mmhobi7 opened this issue · 11 comments
While deodexing hammerhead M preview 1.
07-13 12:47:03:224 Preparing bootclasspath from /home/aaahh/deodex/system/framework/arm/odex
07-13 12:47:03:501 De-optimizing /system/framework/core-libart.jar
07-13 12:47:05:818 Analysis info of Landroid/icu/impl/PluralRulesLoader; : :
Unresolved INVOKE_VIRTUAL_QUICK_ART mIdx=16 objReg=3, use Ljava/lang/String; to invoke (it may have exception but is expected)
07-13 12:47:26:445 Output to /home/aaahh/deodex/system/framework/arm/dex/core-libart.dex
Used command:
java -jar oat2dex.jar boot system/framework/arm/boot.oat
It's causing me problems... Framework.jar is trash.
Is there anything I can do to help you fix this faster? Is there anything I can do on my end?
If not can you show me what to do or point me to anything?
Tried M preview 2 (android-m-preview-1)
08-05 21:35:46:650 Analysis info of Landroid/icu/impl/PluralRulesLoader; : :
Unresolved INVOKE_VIRTUAL_QUICK_ART mIdx=16 objReg=3, use Ljava/lang/String; to invoke (it may have exception but is expected)
08-05 21:35:54:433 Output to /home/aaahh/d/tmp/framework/arm/dex/core-libart.dex
08-05 21:35:54:434 De-optimizing /system/framework/conscrypt.jar
So I did research, found out about this:
https://android.googlesource.com/platform/art/+/master/runtime/dex_instruction_list.h
Yeah so I understand what now, but is there anything I can still do?
I found it in your code and you added it support M preview oat, I really am confused.
I'm going to try java 6 tomorrow, although I remember oar2dex erroring out about java 8
Maybe it's the api being detected incorrectly?
Okay so it looks cosmetic, but I was getting an error while booting, I'll test some more.
Have a try on the latest build. 651535be
https://github.com/testwhat/SmaliEx/blob/master/smaliex-bin/oat2dex.jar?raw=true
Well it seems to have fixed outputs during deodexing but I still get this:
01-07 23:42:21.310 1597 1597 F art : art/runtime/runtime.cc:360] (no managed stack frames)
01-07 23:42:21.310 1597 1597 F art : art/runtime/runtime.cc:360] Pending exception java.lang.NoSuchMethodError: no static or non-static method "Landroid/text/StaticLayout;.nLineBreakOpportunities(Ljava/lang/String;[CI[I)[I"
01-07 23:42:21.310 1597 1597 F art : art/runtime/runtime.cc:360](Throwable with empty stack trace)Dumping all threads without appropriate locks held: thread list lock mutator lock
and
01-07 23:42:25.659 1721 1721 E art : Failed to register native method android.text.StaticLayout.nLineBreakOpportunities(Ljava/lang/String;[CI[I)[I in /system/framework/framework.jar:classes2.dex
01-07 23:42:25.659 1721 1721 E art : ----- class 'Landroid/text/StaticLayout;' cl=0x0 -----
Here is the framework folder, just to make it easier for you.
https://drive.google.com/file/d/0B9uqk9InEzCYRGQ5TkdtRmR5TlE/view?usp=sharing
Tried again with the new Marshmallow preview:
08-17 17:57:07:560 Preparing bootclasspath from /home/aaahh/marshmellow/tmp/framework/arm/odex
08-17 17:57:07:921 De-optimizing /system/framework/core-libart.jar
08-17 17:57:09:479 Analysis info of Landroid/icu/impl/PluralRulesLoader; : :
Risky resolved invocation target from debug info. type=Landroid/icu/text/PluralRanges; mIdx=16 objReg=3
- nLineBreakOpportunities should be only existed in Lollipop. It named nComputeLineBreaks in Marshmallow. So the error should not relate to deodex.
- "Risky resolved..." is a hint to debug, usually it will not cause problem, and for PluralRulesLoader case, it seems to work well as expected.
Please try if there is still run-time exception with latest version.