Just found a bug on 2.11.50. If you try to delete any messages, whatsapp freezes, but you could do it on .42 fine. So went back to 2.11.42 instead.
That's exactly what is bugging me. I'm an early adaptor, computer science student and really like to try out new things, that's why it's probably easier for me to switch to new stuff. But normal people don't do this. they take, what came first and stay at it until it goes down. facebook is slowly going down (thankfully), and hopefully whatsapp will too.It's not a matter of better support of features, it all boils down to: which app are all my friends currently using? This is basically a social media app, and if I don't have any friends on any of the other apps, what's the point of using them?
I would love to tell my friends to make a switch to something better, but then that would mean I have to have to tell everyone to switch, and then they would have to make their friends switch too, etc... OR use two messaging services. It is simply too much headache.
In this time of social media, it seems like whatever works best in the beginning is the one that is going to last (take facebook vs google+).
That is it!!! Thanks a lothi guys.
basically, there is 2 issue here.
1. The Package Installer.
(this is where under ART, it does not install properlly and then cause the -42 issue even when you switch back to dalvik).
This, google has confirm is a issue and needs to fix. the work around is to delete the /data/data/com.whatsapp.X directory, then you can re-install under dalvik.
2. Whatsapp apk itself is not ART compatible.
it seems that version 2.11.50 (i tested so far, or 2.11.42) can run/be compiled with linART.
so, if you able to install in under Dalvik, when switch to ART, the optimizing Application on start will then create .oat which will run.
any older version seems to have "obsolete" flag on whatsapp server. eg 2.11.12 which can be both install and run under ART.
In summary. to run whatsapp, you need either 2.11.42 or .50 (these 2 are tested) installed under dalvik mode. (Do not upgrade it), then switch to ART. Job done.
how to do this ?That is it!!! Thanks a lot
In summary. to run whatsapp, you need either 2.11.42 or .50 (these 2 are tested) installed under dalvik mode. (Do not upgrade it), then switch to ART. Job done.how to do this ?
Bug 61916 has some additional details:sure, here you go:
https://code.google.com/p/android/issues/detail?id=61792
Based on this description I suspected that the error was being thrown by art/runtime/verifier/register_line.cc:Google said:There are two separate issues here. The first is that whatsapp fails to in install with ART.
[...]
This really isn't a WhatsApp issue. They have bytecode that fails to verify for ART, but verified just fine for Dalvik. In ART we tried to add more aggressive checking of monitorenter/monitorexit balance where Dalvik did not but we are going to back that off now that it is clear there are apps relying on this pattern.
The second is that if an app fails to install due a problem with dexopt(Dalvik) or dex2oat(ART) the you can't install the app in the future. This is a separate PackageManager issues that is long existing and filed elsewhere. The best way to fix it is to remove the data directory for the app as #9 suggests, though I haven't validated those instructions.
void RegisterLine::PopMonitor(uint32_t reg_idx) {
const RegType& reg_type = GetRegisterType(reg_idx);
if (!reg_type.IsReferenceTypes()) {
verifier_->Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "monitor-exit on non-object (" << reg_type << ")";
} else if (monitors_.empty()) {
verifier_->Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "monitor-exit stack underflow";
void handleMonitorExit(RegisterLine* workLine, u4 regIdx, u4 insnIdx,
VerifyError* pFailure)
{
if (!regTypeIsReference(getRegisterType(workLine, regIdx))) {
LOG_VFY("VFY: monitor-exit on non-object");
*pFailure = VERIFY_ERROR_GENERIC;
return;
}
if (workLine->monitorEntries == NULL) {
/* should only be true if monitor verification is disabled */
assert(!gDvm.monitorVerification);
return;
}
I/ActivityManager( 611): START u0 {dat=file:///storage/emulated/0/.nogapps/blankstore/com.whatsapp/APP-48348.apk cmp=com.android.packageinstaller/.InstallAppProgress (has extras)} from pid 2057
I/art ( 611): Heap trim of managed (duration=5.292552ms, advised=1548KB) and native (duration=1.301927ms, advised=20KB) heaps. Managed heap utilization of 65%.
W/ActivityManager( 611): No content provider found for permission revoke: file:///storage/emulated/0/.nogapps/blankstore/com.whatsapp/APP-48348.apk
I/ActivityManager( 611): Displayed com.android.packageinstaller/.InstallAppProgress: +74ms
W/ActivityManager( 611): No content provider found for permission revoke: file:///storage/emulated/0/.nogapps/blankstore/com.whatsapp/APP-48348.apk
I/PackageManager( 611): Copying native libraries to /data/app-lib/vmdl-995514050
W/PackageManager( 611): Package com.whatsapp desires unavailable shared library com.google.android.maps; ignoring!
W/PackageManager( 611): Package com.whatsapp desires unavailable shared library com.sec.android.app.multiwindow; ignoring!
I/PackageManager( 611): Running dexopt on: com.whatsapp
I/dex2oat ( 5360): dex2oat: /data/dalvik-cache/[email protected]@[email protected]
W/dex2oat ( 5360): Before Android 4.1, method void com.actionbarsherlock.internal.widget.IcsLinearLayout.drawDividersHorizontal(android.graphics.Canvas) would have incorrectly overridden the package-private method in android.widget.LinearLayout
W/dex2oat ( 5360): Before Android 4.1, method void com.actionbarsherlock.internal.widget.IcsLinearLayout.drawDividersVertical(android.graphics.Canvas) would have incorrectly overridden the package-private method in android.widget.LinearLayout
W/dex2oat ( 5360): Before Android 4.1, method void com.actionbarsherlock.internal.widget.IcsLinearLayout.drawHorizontalDivider(android.graphics.Canvas, int) would have incorrectly overridden the package-private method in android.widget.LinearLayout
W/dex2oat ( 5360): Before Android 4.1, method void com.actionbarsherlock.internal.widget.IcsLinearLayout.drawVerticalDivider(android.graphics.Canvas, int) would have incorrectly overridden the package-private method in android.widget.LinearLayout
I/dex2oat ( 5360): Verification error in void android.support.v4.i.a(int)
E/dex2oat ( 5360): Verification failed on class android.support.v4.i in /data/app/com.whatsapp-1.apk because: Verifier rejected class android.support.v4.i due to bad method void android.support.v4.i.a(int)
W/dex2oat ( 5360): Verification of void com.whatsapp.App.<clinit>() took 196.769322ms
I/dex2oat ( 5360): Verification error in void com.whatsapp.gallerypicker.tc.run()
E/dex2oat ( 5360): Verification failed on class com.whatsapp.gallerypicker.tc in /data/app/com.whatsapp-1.apk because: Verifier rejected class com.whatsapp.gallerypicker.tc due to bad method void com.whatsapp.gallerypicker.tc.run()
W/dex2oat ( 5360): Verification of void com.whatsapp.seb.<clinit>() took 294.038228ms
I/dex2oat ( 5360): Verification error in boolean android.support.v4.app.eb.d()
E/dex2oat ( 5360): Verification failed on class android.support.v4.app.eb in /data/app/com.whatsapp-1.apk because: Verifier rejected class android.support.v4.app.eb due to bad method boolean android.support.v4.app.eb.d()
E/dex2oat ( 5360): Rejecting class com.whatsapp.gallerypicker.db that attempts to sub-class erroneous class android.support.v4.i in /data/app/com.whatsapp-1.apk
E/dex2oat ( 5360): Rejecting class com.whatsapp.up that attempts to sub-class erroneous class android.support.v4.i in /data/app/com.whatsapp-1.apk
W/dex2oat ( 5360): Verification of void ud.<clinit>() took 798.117343ms
F/dex2oat ( 5360): art/runtime/verifier/method_verifier.cc:4119] Check failed: it != dex_gc_maps_->end() Didn't find GC map for: void com.whatsapp.gallerypicker.db.<init>(int)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] Runtime aborting...
F/dex2oat ( 5360): art/runtime/runtime.cc:203] Aborting thread:
F/dex2oat ( 5360): art/runtime/runtime.cc:203] "Thread pool worker 1" prio=5 tid=4 Runnable (still starting up)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | group="" sCount=0 dsCount=0 obj=0x00000000 self=0xb8b91ab8
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | sysTid=5362 nice=0 cgrp=default sched=0/0 handle=0xb8b901e8
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | state=R schedstat=( 4385870832 340327663 29166 ) utm=333 stm=105 core=1 HZ=100
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | stack=0xb50b8000-0xb50bc000 stackSize=1024KB
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Thread::DumpStack(std::ostream&) const+87 [0xb6cf7eac] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6cf003c] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Runtime::Abort()+79 [0xb6cf05cc] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::LogMessage::~LogMessage()+505 [0xb6b9d93a] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::verifier::MethodVerifier::GetDexGcMap(art::MethodReference)+331 [0xb6d0d040] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::CreateNativeGcMap()+59 [0xb6dbe4c4] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::AssembleLIR()+375 [0xb6dbe7cc] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::Materialize()+39 [0xb6dbe808] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6de7eae] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ArtQuickCompileMethod+33 [0xb6de8252] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileMethod(art::DexFile::CodeItem const*, unsigned int, art::InvokeType, unsigned short, unsigned int, _jobject*, art::DexFile const&, art::DexToDexCompilationLevel)+1197 [0xb6dfa46e] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileClass(art::ParallelCompilationManager const*, unsigned int)+729 [0xb6dfa9e2] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6def31a] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadPoolWorker::Run()+41 [0xb6d037be] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadPoolWorker::Callback(void*)+37 [0xb6d03cfe] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: __thread_entry+72 [0xb6ea4170] (libc.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: pthread_create+240 [0xb6ea4308] (libc.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] (no managed stack frames)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] Dumping all threads without appropriate locks held: thread list lock mutator lock
F/dex2oat ( 5360): art/runtime/runtime.cc:203] All threads:
F/dex2oat ( 5360): art/runtime/runtime.cc:203] DALVIK THREADS (4):
F/dex2oat ( 5360): art/runtime/runtime.cc:203] "main" prio=5 tid=1 Native (still starting up)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | group="" sCount=0 dsCount=0 obj=0x00000000 self=0xb8a757b0
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | sysTid=5360 nice=0 cgrp=default sched=0/0 handle=0xb6f3c154
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | state=R schedstat=( 4383188388 278452786 33649 ) utm=330 stm=108 core=2 HZ=100
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | stack=0xbe148000-0xbe14c000 stackSize=8MB
F/dex2oat ( 5360): art/runtime/runtime.cc:203] kernel: (couldn't read /proc/self/task/5360/stack)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::StoreValue(art::RegLocation, art::RegLocation)+362 [0xb6dc70f7] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::GenSget(unsigned int, art::RegLocation, bool, bool)+484 [0xb6dbf0c9] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::CompileDalvikInstruction(art::MIR*, art::BasicBlock*, art::LIR*)+2204 [0xb6dcf62d] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::MethodBlockCodeGen(art::BasicBlock*)+204 [0xb6dd03cd] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::MethodMIR2LIR()+110 [0xb6dd0597] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::Materialize()+74 [0xb6dbe82b] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6de7eb1] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ArtQuickCompileMethod+34 [0xb6de8253] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileMethod(art::DexFile::CodeItem const*, unsigned int, art::InvokeType, unsigned short, unsigned int, _jobject*, art::DexFile const&, art::DexToDexCompilationLevel)+1200 [0xb6dfa471] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileClass(art::ParallelCompilationManager const*, unsigned int)+566 [0xb6dfa93f] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6def31d] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadPool::Wait(art::Thread*, bool, bool)+136 [0xb6d03bb5] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6df2a07] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::Compile(_jobject*, std::vector<art::DexFile const*, std::allocator<art::DexFile const*> > const&, art::ThreadPool&, art::base::TimingLogger&)+224 [0xb6df9995] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileAll(_jobject*, std::vector<art::DexFile const*, std::allocator<art::DexFile const*> > const&, art::base::TimingLogger&)+60 [0xb6df9d39] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6f450e7] (dex2oat)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6f480fd] (dex2oat)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: __libc_init+50 [0xb6ea534b] (libc.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6f419f0] (dex2oat)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] (no managed stack frames)
F/dex2oat ( 5360): art/runtime/runtime.cc:203]
F/dex2oat ( 5360): art/runtime/runtime.cc:203] "Thread pool worker 0" prio=5 tid=2 Native (still starting up)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | group="" sCount=0 dsCount=0 obj=0x00000000 self=0xb8b90430
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | sysTid=5361 nice=0 cgrp=default sched=0/0 handle=0xb8b8ff70
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | state=R schedstat=( 4195403071 327270940 31708 ) utm=298 stm=121 core=1 HZ=100
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | stack=0xb51b8000-0xb51bc000 stackSize=1024KB
F/dex2oat ( 5360): art/runtime/runtime.cc:203] kernel: (couldn't read /proc/self/task/5361/stack)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: std::vector<unsigned int, std::allocator<unsigned int> >::_M_insert_overflow(unsigned int*, unsigned int const&, std::__true_type const&, unsigned int, bool)+226 [0xb6db7247] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::CreateMappingTables()+288 [0xb6dbda0d] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::AssembleLIR()+370 [0xb6dbe7c7] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::Materialize()+40 [0xb6dbe809] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6de7eb1] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ArtQuickCompileMethod+34 [0xb6de8253] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileMethod(art::DexFile::CodeItem const*, unsigned int, art::InvokeType, unsigned short, unsigned int, _jobject*, art::DexFile const&, art::DexToDexCompilationLevel)+1200 [0xb6dfa471] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileClass(art::ParallelCompilationManager const*, unsigned int)+730 [0xb6dfa9e3] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6def31d] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadPoolWorker::Run()+44 [0xb6d037c1] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadPoolWorker::Callback(void*)+40 [0xb6d03d01] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: __thread_entry+72 [0xb6ea4170] (libc.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: pthread_create+240 [0xb6ea4308] (libc.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] (no managed stack frames)
F/dex2oat ( 5360): art/runtime/runtime.cc:203]
F/dex2oat ( 5360): art/runtime/runtime.cc:203] "Thread pool worker 2" prio=5 tid=3 Native (still starting up)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | group="" sCount=0 dsCount=0 obj=0x00000000 self=0xb8b910b0
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | sysTid=5363 nice=0 cgrp=default sched=0/0 handle=0xb8b90e68
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | state=R schedstat=( 4224706748 281845724 32835 ) utm=292 stm=130 core=3 HZ=100
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | stack=0xb4fb8000-0xb4fbc000 stackSize=1024KB
F/dex2oat ( 5360): art/runtime/runtime.cc:203] kernel: (couldn't read /proc/self/task/5363/stack)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6de7e4b] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ArtQuickCompileMethod+34 [0xb6de8253] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileMethod(art::DexFile::CodeItem const*, unsigned int, art::InvokeType, unsigned short, unsigned int, _jobject*, art::DexFile const&, art::DexToDexCompilationLevel)+1200 [0xb6dfa471] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileClass(art::ParallelCompilationManager const*, unsigned int)+566 [0xb6dfa93f] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6def31d] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadPoolWorker::Run()+44 [0xb6d037c1] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadPoolWorker::Callback(void*)+40 [0xb6d03d01] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: __thread_entry+72 [0xb6ea4170] (libc.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: pthread_create+240 [0xb6ea4308] (libc.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] (no managed stack frames)
F/dex2oat ( 5360): art/runtime/runtime.cc:203]
F/dex2oat ( 5360): art/runtime/runtime.cc:203] "Thread pool worker 1" prio=5 tid=4 Native (still starting up)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | group="" sCount=0 dsCount=0 obj=0x00000000 self=0xb8b91ab8
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | sysTid=5362 nice=0 cgrp=default sched=0/0 handle=0xb8b901e8
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | state=R schedstat=( 4413047557 352854277 29459 ) utm=335 stm=106 core=0 HZ=100
F/dex2oat ( 5360): art/runtime/runtime.cc:203] | stack=0xb50b8000-0xb50bc000 stackSize=1024KB
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Thread::DumpStack(std::ostream&) const+87 [0xb6cf7eac] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadList::DumpLocked(std::ostream&)+67 [0xb6d02e1c] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6cf00ee] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Runtime::Abort()+79 [0xb6cf05cc] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::LogMessage::~LogMessage()+505 [0xb6b9d93a] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::verifier::MethodVerifier::GetDexGcMap(art::MethodReference)+331 [0xb6d0d040] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::CreateNativeGcMap()+59 [0xb6dbe4c4] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::AssembleLIR()+375 [0xb6dbe7cc] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::Materialize()+39 [0xb6dbe808] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6de7eae] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ArtQuickCompileMethod+33 [0xb6de8252] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileMethod(art::DexFile::CodeItem const*, unsigned int, art::InvokeType, unsigned short, unsigned int, _jobject*, art::DexFile const&, art::DexToDexCompilationLevel)+1197 [0xb6dfa46e] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileClass(art::ParallelCompilationManager const*, unsigned int)+729 [0xb6dfa9e2] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6def31a] (libart-compiler.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadPoolWorker::Run()+41 [0xb6d037be] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadPoolWorker::Callback(void*)+37 [0xb6d03cfe] (libart.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: __thread_entry+72 [0xb6ea4170] (libc.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: pthread_create+240 [0xb6ea4308] (libc.so)
F/dex2oat ( 5360): art/runtime/runtime.cc:203] (no managed stack frames)
F/dex2oat ( 5360): art/runtime/runtime.cc:203]
F/dex2oat ( 5360): art/runtime/runtime.cc:203]
F/libc ( 5360): Fatal signal 6 (SIGABRT) at 0x000014f0 (code=-6), thread 5362 (Thread pool wor)
F/dex2oat ( 5360): art/runtime/verifier/method_verifier.cc:4119] Check failed: it != dex_gc_maps_->end() Didn't find GC map for: void com.whatsapp.up.<init>(com.whatsapp.App, int)
The problem is that we may be looking at the wrong part of the code.Bug 61916 has some additional details:
Based on this description I suspected that the error was being thrown by art/runtime/verifier/register_line.cc:
In Dalvik, gDvm.monitorVerification defaults to false, causing monitorEntries to stay NULL, so the enter/exit matching described by the Google engineer is disabled (as expected on Dalvik) unless Xverifyopt:checkmon is used:Code:void RegisterLine::PopMonitor(uint32_t reg_idx) { const RegType& reg_type = GetRegisterType(reg_idx); if (!reg_type.IsReferenceTypes()) { verifier_->Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "monitor-exit on non-object (" << reg_type << ")"; } else if (monitors_.empty()) { verifier_->Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "monitor-exit stack underflow";
But the error I saw when I actually tried to install the latest WhatsApp didn't appear to be "monitor-exit"-related, so I am puzzled:Code:void handleMonitorExit(RegisterLine* workLine, u4 regIdx, u4 insnIdx, VerifyError* pFailure) { if (!regTypeIsReference(getRegisterType(workLine, regIdx))) { LOG_VFY("VFY: monitor-exit on non-object"); *pFailure = VERIFY_ERROR_GENERIC; return; } if (workLine->monitorEntries == NULL) { /* should only be true if monitor verification is disabled */ assert(!gDvm.monitorVerification); return; }
What dex2oat errors is everyone else seeing?Code:I/ActivityManager( 611): START u0 {dat=file:///storage/emulated/0/.nogapps/blankstore/com.whatsapp/APP-48348.apk cmp=com.android.packageinstaller/.InstallAppProgress (has extras)} from pid 2057 I/art ( 611): Heap trim of managed (duration=5.292552ms, advised=1548KB) and native (duration=1.301927ms, advised=20KB) heaps. Managed heap utilization of 65%. W/ActivityManager( 611): No content provider found for permission revoke: file:///storage/emulated/0/.nogapps/blankstore/com.whatsapp/APP-48348.apk I/ActivityManager( 611): Displayed com.android.packageinstaller/.InstallAppProgress: +74ms W/ActivityManager( 611): No content provider found for permission revoke: file:///storage/emulated/0/.nogapps/blankstore/com.whatsapp/APP-48348.apk I/PackageManager( 611): Copying native libraries to /data/app-lib/vmdl-995514050 W/PackageManager( 611): Package com.whatsapp desires unavailable shared library com.google.android.maps; ignoring! W/PackageManager( 611): Package com.whatsapp desires unavailable shared library com.sec.android.app.multiwindow; ignoring! I/PackageManager( 611): Running dexopt on: com.whatsapp I/dex2oat ( 5360): dex2oat: /data/dalvik-cache/[email protected]@[email protected] W/dex2oat ( 5360): Before Android 4.1, method void com.actionbarsherlock.internal.widget.IcsLinearLayout.drawDividersHorizontal(android.graphics.Canvas) would have incorrectly overridden the package-private method in android.widget.LinearLayout W/dex2oat ( 5360): Before Android 4.1, method void com.actionbarsherlock.internal.widget.IcsLinearLayout.drawDividersVertical(android.graphics.Canvas) would have incorrectly overridden the package-private method in android.widget.LinearLayout W/dex2oat ( 5360): Before Android 4.1, method void com.actionbarsherlock.internal.widget.IcsLinearLayout.drawHorizontalDivider(android.graphics.Canvas, int) would have incorrectly overridden the package-private method in android.widget.LinearLayout W/dex2oat ( 5360): Before Android 4.1, method void com.actionbarsherlock.internal.widget.IcsLinearLayout.drawVerticalDivider(android.graphics.Canvas, int) would have incorrectly overridden the package-private method in android.widget.LinearLayout I/dex2oat ( 5360): Verification error in void android.support.v4.i.a(int) E/dex2oat ( 5360): Verification failed on class android.support.v4.i in /data/app/com.whatsapp-1.apk because: Verifier rejected class android.support.v4.i due to bad method void android.support.v4.i.a(int) W/dex2oat ( 5360): Verification of void com.whatsapp.App.<clinit>() took 196.769322ms I/dex2oat ( 5360): Verification error in void com.whatsapp.gallerypicker.tc.run() E/dex2oat ( 5360): Verification failed on class com.whatsapp.gallerypicker.tc in /data/app/com.whatsapp-1.apk because: Verifier rejected class com.whatsapp.gallerypicker.tc due to bad method void com.whatsapp.gallerypicker.tc.run() W/dex2oat ( 5360): Verification of void com.whatsapp.seb.<clinit>() took 294.038228ms I/dex2oat ( 5360): Verification error in boolean android.support.v4.app.eb.d() E/dex2oat ( 5360): Verification failed on class android.support.v4.app.eb in /data/app/com.whatsapp-1.apk because: Verifier rejected class android.support.v4.app.eb due to bad method boolean android.support.v4.app.eb.d() E/dex2oat ( 5360): Rejecting class com.whatsapp.gallerypicker.db that attempts to sub-class erroneous class android.support.v4.i in /data/app/com.whatsapp-1.apk E/dex2oat ( 5360): Rejecting class com.whatsapp.up that attempts to sub-class erroneous class android.support.v4.i in /data/app/com.whatsapp-1.apk W/dex2oat ( 5360): Verification of void ud.<clinit>() took 798.117343ms F/dex2oat ( 5360): art/runtime/verifier/method_verifier.cc:4119] Check failed: it != dex_gc_maps_->end() Didn't find GC map for: void com.whatsapp.gallerypicker.db.<init>(int) F/dex2oat ( 5360): art/runtime/runtime.cc:203] Runtime aborting... F/dex2oat ( 5360): art/runtime/runtime.cc:203] Aborting thread: F/dex2oat ( 5360): art/runtime/runtime.cc:203] "Thread pool worker 1" prio=5 tid=4 Runnable (still starting up) F/dex2oat ( 5360): art/runtime/runtime.cc:203] | group="" sCount=0 dsCount=0 obj=0x00000000 self=0xb8b91ab8 F/dex2oat ( 5360): art/runtime/runtime.cc:203] | sysTid=5362 nice=0 cgrp=default sched=0/0 handle=0xb8b901e8 F/dex2oat ( 5360): art/runtime/runtime.cc:203] | state=R schedstat=( 4385870832 340327663 29166 ) utm=333 stm=105 core=1 HZ=100 F/dex2oat ( 5360): art/runtime/runtime.cc:203] | stack=0xb50b8000-0xb50bc000 stackSize=1024KB F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Thread::DumpStack(std::ostream&) const+87 [0xb6cf7eac] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6cf003c] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Runtime::Abort()+79 [0xb6cf05cc] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::LogMessage::~LogMessage()+505 [0xb6b9d93a] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::verifier::MethodVerifier::GetDexGcMap(art::MethodReference)+331 [0xb6d0d040] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::CreateNativeGcMap()+59 [0xb6dbe4c4] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::AssembleLIR()+375 [0xb6dbe7cc] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::Materialize()+39 [0xb6dbe808] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6de7eae] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ArtQuickCompileMethod+33 [0xb6de8252] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileMethod(art::DexFile::CodeItem const*, unsigned int, art::InvokeType, unsigned short, unsigned int, _jobject*, art::DexFile const&, art::DexToDexCompilationLevel)+1197 [0xb6dfa46e] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileClass(art::ParallelCompilationManager const*, unsigned int)+729 [0xb6dfa9e2] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6def31a] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadPoolWorker::Run()+41 [0xb6d037be] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadPoolWorker::Callback(void*)+37 [0xb6d03cfe] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: __thread_entry+72 [0xb6ea4170] (libc.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: pthread_create+240 [0xb6ea4308] (libc.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] (no managed stack frames) F/dex2oat ( 5360): art/runtime/runtime.cc:203] Dumping all threads without appropriate locks held: thread list lock mutator lock F/dex2oat ( 5360): art/runtime/runtime.cc:203] All threads: F/dex2oat ( 5360): art/runtime/runtime.cc:203] DALVIK THREADS (4): F/dex2oat ( 5360): art/runtime/runtime.cc:203] "main" prio=5 tid=1 Native (still starting up) F/dex2oat ( 5360): art/runtime/runtime.cc:203] | group="" sCount=0 dsCount=0 obj=0x00000000 self=0xb8a757b0 F/dex2oat ( 5360): art/runtime/runtime.cc:203] | sysTid=5360 nice=0 cgrp=default sched=0/0 handle=0xb6f3c154 F/dex2oat ( 5360): art/runtime/runtime.cc:203] | state=R schedstat=( 4383188388 278452786 33649 ) utm=330 stm=108 core=2 HZ=100 F/dex2oat ( 5360): art/runtime/runtime.cc:203] | stack=0xbe148000-0xbe14c000 stackSize=8MB F/dex2oat ( 5360): art/runtime/runtime.cc:203] kernel: (couldn't read /proc/self/task/5360/stack) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::StoreValue(art::RegLocation, art::RegLocation)+362 [0xb6dc70f7] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::GenSget(unsigned int, art::RegLocation, bool, bool)+484 [0xb6dbf0c9] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::CompileDalvikInstruction(art::MIR*, art::BasicBlock*, art::LIR*)+2204 [0xb6dcf62d] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::MethodBlockCodeGen(art::BasicBlock*)+204 [0xb6dd03cd] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::MethodMIR2LIR()+110 [0xb6dd0597] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::Materialize()+74 [0xb6dbe82b] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6de7eb1] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ArtQuickCompileMethod+34 [0xb6de8253] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileMethod(art::DexFile::CodeItem const*, unsigned int, art::InvokeType, unsigned short, unsigned int, _jobject*, art::DexFile const&, art::DexToDexCompilationLevel)+1200 [0xb6dfa471] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileClass(art::ParallelCompilationManager const*, unsigned int)+566 [0xb6dfa93f] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6def31d] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadPool::Wait(art::Thread*, bool, bool)+136 [0xb6d03bb5] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6df2a07] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::Compile(_jobject*, std::vector<art::DexFile const*, std::allocator<art::DexFile const*> > const&, art::ThreadPool&, art::base::TimingLogger&)+224 [0xb6df9995] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileAll(_jobject*, std::vector<art::DexFile const*, std::allocator<art::DexFile const*> > const&, art::base::TimingLogger&)+60 [0xb6df9d39] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6f450e7] (dex2oat) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6f480fd] (dex2oat) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: __libc_init+50 [0xb6ea534b] (libc.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6f419f0] (dex2oat) F/dex2oat ( 5360): art/runtime/runtime.cc:203] (no managed stack frames) F/dex2oat ( 5360): art/runtime/runtime.cc:203] F/dex2oat ( 5360): art/runtime/runtime.cc:203] "Thread pool worker 0" prio=5 tid=2 Native (still starting up) F/dex2oat ( 5360): art/runtime/runtime.cc:203] | group="" sCount=0 dsCount=0 obj=0x00000000 self=0xb8b90430 F/dex2oat ( 5360): art/runtime/runtime.cc:203] | sysTid=5361 nice=0 cgrp=default sched=0/0 handle=0xb8b8ff70 F/dex2oat ( 5360): art/runtime/runtime.cc:203] | state=R schedstat=( 4195403071 327270940 31708 ) utm=298 stm=121 core=1 HZ=100 F/dex2oat ( 5360): art/runtime/runtime.cc:203] | stack=0xb51b8000-0xb51bc000 stackSize=1024KB F/dex2oat ( 5360): art/runtime/runtime.cc:203] kernel: (couldn't read /proc/self/task/5361/stack) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: std::vector<unsigned int, std::allocator<unsigned int> >::_M_insert_overflow(unsigned int*, unsigned int const&, std::__true_type const&, unsigned int, bool)+226 [0xb6db7247] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::CreateMappingTables()+288 [0xb6dbda0d] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::AssembleLIR()+370 [0xb6dbe7c7] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::Materialize()+40 [0xb6dbe809] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6de7eb1] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ArtQuickCompileMethod+34 [0xb6de8253] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileMethod(art::DexFile::CodeItem const*, unsigned int, art::InvokeType, unsigned short, unsigned int, _jobject*, art::DexFile const&, art::DexToDexCompilationLevel)+1200 [0xb6dfa471] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileClass(art::ParallelCompilationManager const*, unsigned int)+730 [0xb6dfa9e3] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6def31d] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadPoolWorker::Run()+44 [0xb6d037c1] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadPoolWorker::Callback(void*)+40 [0xb6d03d01] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: __thread_entry+72 [0xb6ea4170] (libc.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: pthread_create+240 [0xb6ea4308] (libc.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] (no managed stack frames) F/dex2oat ( 5360): art/runtime/runtime.cc:203] F/dex2oat ( 5360): art/runtime/runtime.cc:203] "Thread pool worker 2" prio=5 tid=3 Native (still starting up) F/dex2oat ( 5360): art/runtime/runtime.cc:203] | group="" sCount=0 dsCount=0 obj=0x00000000 self=0xb8b910b0 F/dex2oat ( 5360): art/runtime/runtime.cc:203] | sysTid=5363 nice=0 cgrp=default sched=0/0 handle=0xb8b90e68 F/dex2oat ( 5360): art/runtime/runtime.cc:203] | state=R schedstat=( 4224706748 281845724 32835 ) utm=292 stm=130 core=3 HZ=100 F/dex2oat ( 5360): art/runtime/runtime.cc:203] | stack=0xb4fb8000-0xb4fbc000 stackSize=1024KB F/dex2oat ( 5360): art/runtime/runtime.cc:203] kernel: (couldn't read /proc/self/task/5363/stack) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6de7e4b] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ArtQuickCompileMethod+34 [0xb6de8253] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileMethod(art::DexFile::CodeItem const*, unsigned int, art::InvokeType, unsigned short, unsigned int, _jobject*, art::DexFile const&, art::DexToDexCompilationLevel)+1200 [0xb6dfa471] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileClass(art::ParallelCompilationManager const*, unsigned int)+566 [0xb6dfa93f] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6def31d] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadPoolWorker::Run()+44 [0xb6d037c1] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadPoolWorker::Callback(void*)+40 [0xb6d03d01] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: __thread_entry+72 [0xb6ea4170] (libc.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: pthread_create+240 [0xb6ea4308] (libc.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] (no managed stack frames) F/dex2oat ( 5360): art/runtime/runtime.cc:203] F/dex2oat ( 5360): art/runtime/runtime.cc:203] "Thread pool worker 1" prio=5 tid=4 Native (still starting up) F/dex2oat ( 5360): art/runtime/runtime.cc:203] | group="" sCount=0 dsCount=0 obj=0x00000000 self=0xb8b91ab8 F/dex2oat ( 5360): art/runtime/runtime.cc:203] | sysTid=5362 nice=0 cgrp=default sched=0/0 handle=0xb8b901e8 F/dex2oat ( 5360): art/runtime/runtime.cc:203] | state=R schedstat=( 4413047557 352854277 29459 ) utm=335 stm=106 core=0 HZ=100 F/dex2oat ( 5360): art/runtime/runtime.cc:203] | stack=0xb50b8000-0xb50bc000 stackSize=1024KB F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Thread::DumpStack(std::ostream&) const+87 [0xb6cf7eac] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadList::DumpLocked(std::ostream&)+67 [0xb6d02e1c] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6cf00ee] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Runtime::Abort()+79 [0xb6cf05cc] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::LogMessage::~LogMessage()+505 [0xb6b9d93a] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::verifier::MethodVerifier::GetDexGcMap(art::MethodReference)+331 [0xb6d0d040] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::CreateNativeGcMap()+59 [0xb6dbe4c4] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::AssembleLIR()+375 [0xb6dbe7cc] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::Mir2Lir::Materialize()+39 [0xb6dbe808] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6de7eae] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ArtQuickCompileMethod+33 [0xb6de8252] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileMethod(art::DexFile::CodeItem const*, unsigned int, art::InvokeType, unsigned short, unsigned int, _jobject*, art::DexFile const&, art::DexToDexCompilationLevel)+1197 [0xb6dfa46e] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::CompilerDriver::CompileClass(art::ParallelCompilationManager const*, unsigned int)+729 [0xb6dfa9e2] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: ??? [0xb6def31a] (libart-compiler.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadPoolWorker::Run()+41 [0xb6d037be] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: art::ThreadPoolWorker::Callback(void*)+37 [0xb6d03cfe] (libart.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: __thread_entry+72 [0xb6ea4170] (libc.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] native: pthread_create+240 [0xb6ea4308] (libc.so) F/dex2oat ( 5360): art/runtime/runtime.cc:203] (no managed stack frames) F/dex2oat ( 5360): art/runtime/runtime.cc:203] F/dex2oat ( 5360): art/runtime/runtime.cc:203] F/libc ( 5360): Fatal signal 6 (SIGABRT) at 0x000014f0 (code=-6), thread 5362 (Thread pool wor) F/dex2oat ( 5360): art/runtime/verifier/method_verifier.cc:4119] Check failed: it != dex_gc_maps_->end() Didn't find GC map for: void com.whatsapp.up.<init>(com.whatsapp.App, int)
Google said in bug report that was an Android ART bug related, not whatsapp'sThe problem is that we may be looking at the wrong part of the code.
It may be a ART bug or WhatsApp "induced bug", conflicting with something. Few other apps (ePSXe, DraStic, FF Dimensioins, 4, and 5 (FF3 works)) also crashes with ART. They might crash for different reasons or they may crash for the same reason, so it may or may not help pinpointing the problem debugging them
Older versions of WhatsApp works. I've eyeballed both apk's and I think it may be related to the added libs, but I'm not too sure. You might try installing it and see how the log goes. I'm a begginer with pretty much no knowledge on coding so I'm shooting in the dark here.
It's the WhatsApp 2.11.42 btw
Could you please post the dex2oat logcats, taken immediately after installation fails? This helps in identifying a pattern and seeing whether different packages are showing different symptoms.Few other apps (ePSXe, DraStic, FF Dimensioins, 4, and 5 (FF3 works)) also crashes with ART. They might crash for different reasons or they may crash for the same reason, so it may or may not help pinpointing the problem debugging them
Comment #27 from the bug report addresses this:Older versions of WhatsApp works. I've eyeballed both apk's and I think it may be related to the added libs, but I'm not too sure.
FWIW I run plenty of other packages with native libraries under ART.Google said:The libs having nothing to do with it. The app is failing to install due to a legitimate bytecode verification error. Our workaround is to disable the verification (which is what Dalvik was doing).
viber supports art? i don't think so...Seriously I don't get why people like Whatsapp.
There are many alternative out there such as Viber or Line which provides better interface and actually adhere to Google guidelines.
Same hereGot a message today that i need to update in 14 days..
Sent from my Nexus 4 using XDA Premium 4 mobile app
yes, it supports.viber supports art? i don't think so...
Same!Got a message today that i need to update in 14 days..
Sent from my Nexus 4 using XDA Premium 4 mobile app
I'd love to, but I'm using a slightly modded ROM (SlimKat) which enabling ART seems to bootloop.Could you please post the dex2oat logcats, taken immediately after installation fails? This helps in identifying a pattern and seeing whether different packages are showing different symptoms.
adb root
adb remount
adb shell "rm -rf /data/data/com.whatsapp"
adb pull /system/lib/libart.so libart.so.bak
adb push libart.so /system/lib/
adb shell "mount /system"
adb push libart.so.bak /system/lib/libart.so
Patched the source and rebuiltOut of curiosity, did you manually patched libart.so or it's source patched from AOSP?
cd /data/local/tmp
dex2oat --zip-location=whatsapp.apk --zip-fd=3 --oat-file=test.oat 3< whatsapp.apk