Proguard has a class merging feature that will mitigate this problem as well as save binary size.
In Fennec, this feature is turned off because the example config file from Google I was using as a template contained a comment warning that this can crash early versions of Dalvik. We may no longer care. The options should be pretty straightforward to spot in profuard.cfg (but I'll post again with mxr links if desired when I'm not on a phone). I suggest investigating this before trying Facebook's selections of utter insanity. On 29 Oct 2014 16:32, "James Willcox" <[email protected]> wrote: > > > On Oct 29, 2014, at 11:07 AM, Richard Newman <[email protected]> wrote: > > When I build and install Fennec on my 2.3 hardware, I hit an error that > we’re exceeding LinearAlloc capacity. Gingerbread has a 5MB limit. ICS and > up have 8MB. > > I don’t hit this with builds from infra. I recently upgraded support > library and SDK; I’m pretty confident that before the upgrade I was able to > install my built APKs. > > > Doing some reading, this seems to occur when you have deep interface > hierarchies, and/or lots of classes. You’ll see this issue cited a lot: > > https://code.google.com/p/android/issues/detail?id=22586 > > but lots of other folks seem to hit this just by using fat libraries > (e.g., JodaTime). You start dumping Facebook libs, rendering libs, datetime > libs into your project, and suddenly it won’t install. E.g., > > http://www.birbit.com/how-to-solve-linearalloc-problem/ > > > We do use fat libraries, we are a big project, and so I suspect we’re > hovering right around 5MB with old tools, and over 5MB with new ones. > > Another hypothesis is that method name collisions (typically across > libraries) will b0rk things, but I don’t see evidence of that in my ADB log. > > > So I’m concerned: an infra upgrade could just break 2.3 devices, for one > thing. > > > Yeah, that’s worrying. Presumably our 2.3 emulator testing would catch > this, though. > > > Has anyone else hit this? > > > Facebook has, and came up with an insane hack to work around it: > https://www.facebook.com/notes/facebook-engineering/under-the-hood-dalvik-patch-for-facebook-for-android/10151345597798920 > > I think if it comes to it, we can use the same hack. > > > > My expectation would be that ProGuard would eliminate enough code to fix > this, but perhaps it’s not aggressively pruning library code. > > > I would like to know how much ProGuard strips out. Do we have that > somewhere? Does ProGuard make that easily available? > > James > > > > _______________________________________________ > mobile-firefox-dev mailing list > [email protected] > https://mail.mozilla.org/listinfo/mobile-firefox-dev > >
_______________________________________________ mobile-firefox-dev mailing list [email protected] https://mail.mozilla.org/listinfo/mobile-firefox-dev

