Tuesday, July 19, 2011

Android AdMob & ProGuard

On most devices, using AdMob in an obfuscated application (using ProGuard) works perfectly fine. However, on a few devices (I don't know which ones), you'll get a java.lang.NoSuchMethodError and your users will be angry. Here's the full stack trace: java.lang.RuntimeException: An error occured while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:200) at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) at java.util.concurrent.FutureTask.setException(FutureTask.java:124) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) at java.util.concurrent.FutureTask.run(FutureTask.java:137) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) at java.lang.Thread.run(Thread.java:1102) Caused by: java.lang.NoSuchMethodError: com.google.gson.Gson.a at c.a(Unknown Source) at c.doInBackground(Unknown Source) at android.os.AsyncTask$2.call(AsyncTask.java:185) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) ... 4 more When I first got this report I quickly realized it wasn't my fault, since I don't use gson. To cut to the chase, here's what I put in my procfg.txt to fix it (at least for now): -keep public class com.google.ads.** { public protected *; } -keep public class com.google.gson.** { public protected *; }

26 comments:

  1. Thanks. I'm no trouble with this for now, but I prefer to prevent..

    ReplyDelete
  2. Thanks, I'm in trouble with this right now and I prefer this knowledge ..

    ReplyDelete
  3. oh god!! very very very veryvery veryvery veryvery very thank you ㅠㅠ

    ReplyDelete
  4. Thanks man.
    I too don't use Gson :)

    ReplyDelete
  5. Your topic was great! Thanks for taking a moment to draft such an interesting piece… Application Development using Angularjs

    ReplyDelete
  6. Great post! I am actually getting ready to across this information, It’s very helpful for this blog.Also great with all of the valuable information you have Keep up the good work you are doing well.
    python training in pune | python training institute in chennai | python training in Bangalore

    ReplyDelete
  7. Thanks for the good words! Really appreciated. Great post. I’ve been commenting a lot on a few blogs recently, but I hadn’t thought about my approach until you brought it up. 
    Devops Training courses
    Devops Training in Bangalore
    Best Devops Training in pune
    Devops interview questions and answers

    ReplyDelete
  8. Great Article… I love to read your articles because your writing style is too good, its is very very helpful for all of us and I never get bored while reading your article because, they are becomes a more and more interesting from the starting lines until the end.
    Java training in Chennai | Java training in Bangalore

    Java online training | Java training in Pune

    ReplyDelete
  9. It's interesting that many of the bloggers to helped clarify a few things for me as well as giving.Most of ideas can be nice content.The people to give them a good shake to get your point and across the command

    Data Science Course in Indira nagar | Data Science Course in Electronic city

    Python course in Kalyan nagar | Data Science course in Indira nagar

    Data Science Course in Marathahalli | Data Science Course in BTM Layout

    ReplyDelete
  10. This comment has been removed by the author.

    ReplyDelete