iOS releases show a spike in app search crashes

With the iPhone 4S coming out with iOS 5 Crittercism is predicting a spike in application crashes.  Looking at historical data we found a strong link between iOS releases for iPhone and iPod and application crash searches on Google.  Using Google Insights, the database of intentions, we see that user searches for application crashes spike around the release time of the iPhone 3S in 2008 and the iPhone 4 in 2010.  
 
Iphone_app_crash

Developers be cognizant of increased crashes and respond early so that your application rating does not drop in the app store.  Also, take this opportunity to integrate Crittercism real-time crash reporting into your application and be the first to be notified about crash, user platform statistics and user feedback so you can act quickly to resolve any customer issues without effecting your app store rating.  

AdMob’s Unfriendly JAR on Android

One of our team members (thanks Shalin!) recently discovered that our Android library didn’t play well with AdMob. As soon as our library and AdMob’s library were added to the same project, this error showed up:

———————————————————————————

UNEXPECTED TOP-LEVEL EXCEPTION:

java.lang.IllegalArgumentException: already added:

….

Conversion to Dalvik format failed with error 1

———————————————————————————

Here is a stack overflow post that describes other users experiencing similar issues with other jar files. There are many suggested solutions, but none of them worked. After I poked around the AdMob Android library, the real issue became clear — AdMob’s library uses ProGuard to obfuscate its classes, but fails to declare a custom package name. Proguard will change your classes and its imports to look something like:

import A;
import B;
import C
etc

This means if you add other external libraries that are also guilty of this (like ours!), the classes will have conflicting names and you won’t be build your project. We have since fixed our Android library with one line of (configuration) code, and we invite Google to do the same.

If you are developing a library, and use ProGuard to obfuscate your classes, then

Add this line to your proguard.cfg file:

-repackageclasses ‘custom.package.here’

This will change your classes to custom.package.here.A, custom.package.here.B, etc. Now they’ll no longer conflict!

 

Follow

Get every new post delivered to your Inbox.