{"id":3874,"date":"2020-02-27T23:28:13","date_gmt":"2020-02-27T23:28:13","guid":{"rendered":"https:\/\/www.gubatron.com\/blog\/?p=3874"},"modified":"2020-02-27T23:28:46","modified_gmt":"2020-02-27T23:28:46","slug":"coding-solved-gradle-build-android-breaks-after-upgrading-a-dependency-with-nullpointerexception-thrown-at-programclass-constantpoolentryaccept","status":"publish","type":"post","link":"https:\/\/www.gubatron.com\/blog\/coding-solved-gradle-build-android-breaks-after-upgrading-a-dependency-with-nullpointerexception-thrown-at-programclass-constantpoolentryaccept\/","title":{"rendered":"[CODING\/SOLVED] gradle build (android) breaks after upgrading a dependency with NullPointerException thrown at ProgramClass.constantPoolEntryAccept"},"content":{"rendered":"<p>You&#8217;ve just upgraded one of your Android project&#8217;s dependencies and when you <code>.\/gradlew assembleRelease<\/code> the build process breaks.<\/p>\n<p>You invoke it again with <code>--stacktrace<\/code> to find the following exception:<\/p>\n<p>&nbsp;<\/p>\n<p>[pastacode lang=&#8221;java&#8221; manual=&#8221;java.lang.NullPointerException%0Aat%20proguard.classfile.ProgramClass.constantPoolEntryAccept(ProgramClass.java%3A537)%0Aat%20proguard.shrink.UsageMarker.markConstant(UsageMarker.java%3A1246)%0Aat%20proguard.shrink.UsageMarker.visitRequiresInfo(UsageMarker.java%3A1040)%0Aat%20proguard.classfile.attribute.module.ModuleAttribute.requiresAccept(ModuleAttribute.java%3A138)%0Aat%20proguard.shrink.UsageMarker.visitModuleAttribute(UsageMarker.java%3A739)%0Aat%20proguard.classfile.attribute.module.ModuleAttribute.accept(ModuleAttribute.java%3A99)%0Aat%20proguard.classfile.ProgramClass.attributesAccept(ProgramClass.java%3A619)%0Aat%20proguard.shrink.UsageMarker.markProgramClassBody(UsageMarker.java%3A124)%0Aat%20proguard.shrink.UsageMarker.visitProgramClass(UsageMarker.java%3A94)%0Aat%20proguard.classfile.visitor.MultiClassVisitor.visitProgramClass(MultiClassVisitor.java%3A67)%0Aat%20proguard.classfile.visitor.MultiClassVisitor.visitProgramClass(MultiClassVisitor.java%3A67)%0Aat%20proguard.classfile.visitor.ClassNameFilter.visitProgramClass(ClassNameFilter.java%3A128)%0Aat%20proguard.classfile.ProgramClass.accept(ProgramClass.java%3A430)%0Aat%20proguard.classfile.ClassPool.classesAccept(ClassPool.java%3A124)%0Aat%20proguard.classfile.visitor.AllClassVisitor.visitClassPool(AllClassVisitor.java%3A45)%0Aat%20proguard.classfile.visitor.MultiClassPoolVisitor.visitClassPool(MultiClassPoolVisitor.java%3A85)%0Aat%20proguard.classfile.ClassPool.accept(ClassPool.java%3A110)%0Aat%20proguard.shrink.Shrinker.execute(Shrinker.java%3A90)%0Aat%20proguard.ProGuard.shrink(ProGuard.java%3A381)%0Aat%20proguard.ProGuard.execute(ProGuard.java%3A145)%0Aat%20proguard.ProGuard.main(ProGuard.java%3A572)&#8221; message=&#8221;&#8221; highlight=&#8221;&#8221; provider=&#8221;manual&#8221;\/]<\/p>\n<p><a href=\"https:\/\/sourceforge.net\/p\/proguard\/bugs\/712\/\" target=\"_blank\" rel=\"noopener noreferrer\">This is a ProGuard bug<\/a>, which my friend, has been solved by the ProGuard team ages ago, and your build environment is using an old ProGuard version.<\/p>\n<p>Add this to your <code>build.gradle<\/code> to force it to use the latest version (as of today it&#8217;s 6.2.2, <a href=\"https:\/\/mvnrepository.com\/artifact\/net.sf.proguard\/proguard-base\" target=\"maven\" rel=\"noopener noreferrer\">check the latest version here<\/a>)<\/p>\n<p>[pastacode lang=&#8221;java&#8221; manual=&#8221;buildscript%20%7B%0A%20%20%20%20&#8230;%0A%20%20%20%20dependencies%20%7B%0A%20%20%20%20%20%20%20%20&#8230;%0A%20%20%20%20%20%20%20%20classpath%20&#8217;net.sf.proguard%3Aproguard-gradle%3A6.2.2&#8217;%0A%20%20%7D%0A%7D%0A%7D&#8221; message=&#8221;force a newer proguard version for your android build&#8221; highlight=&#8221;1,3,5&#8243; provider=&#8221;manual&#8221;\/]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You&#8217;ve just upgraded one of your Android project&#8217;s dependencies and when you .\/gradlew assembleRelease the build process breaks. You invoke it again with &#8211;stacktrace to find the following exception: &nbsp; [pastacode lang=&#8221;java&#8221; manual=&#8221;java.lang.NullPointerException%0Aat%20proguard.classfile.ProgramClass.constantPoolEntryAccept(ProgramClass.java%3A537)%0Aat%20proguard.shrink.UsageMarker.markConstant(UsageMarker.java%3A1246)%0Aat%20proguard.shrink.UsageMarker.visitRequiresInfo(UsageMarker.java%3A1040)%0Aat%20proguard.classfile.attribute.module.ModuleAttribute.requiresAccept(ModuleAttribute.java%3A138)%0Aat%20proguard.shrink.UsageMarker.visitModuleAttribute(UsageMarker.java%3A739)%0Aat%20proguard.classfile.attribute.module.ModuleAttribute.accept(ModuleAttribute.java%3A99)%0Aat%20proguard.classfile.ProgramClass.attributesAccept(ProgramClass.java%3A619)%0Aat%20proguard.shrink.UsageMarker.markProgramClassBody(UsageMarker.java%3A124)%0Aat%20proguard.shrink.UsageMarker.visitProgramClass(UsageMarker.java%3A94)%0Aat%20proguard.classfile.visitor.MultiClassVisitor.visitProgramClass(MultiClassVisitor.java%3A67)%0Aat%20proguard.classfile.visitor.MultiClassVisitor.visitProgramClass(MultiClassVisitor.java%3A67)%0Aat%20proguard.classfile.visitor.ClassNameFilter.visitProgramClass(ClassNameFilter.java%3A128)%0Aat%20proguard.classfile.ProgramClass.accept(ProgramClass.java%3A430)%0Aat%20proguard.classfile.ClassPool.classesAccept(ClassPool.java%3A124)%0Aat%20proguard.classfile.visitor.AllClassVisitor.visitClassPool(AllClassVisitor.java%3A45)%0Aat%20proguard.classfile.visitor.MultiClassPoolVisitor.visitClassPool(MultiClassPoolVisitor.java%3A85)%0Aat%20proguard.classfile.ClassPool.accept(ClassPool.java%3A110)%0Aat%20proguard.shrink.Shrinker.execute(Shrinker.java%3A90)%0Aat%20proguard.ProGuard.shrink(ProGuard.java%3A381)%0Aat%20proguard.ProGuard.execute(ProGuard.java%3A145)%0Aat%20proguard.ProGuard.main(ProGuard.java%3A572)&#8221; message=&#8221;&#8221; highlight=&#8221;&#8221; provider=&#8221;manual&#8221;\/] This is a ProGuard bug, which my friend, has been solved by the ProGuard team ages ago, and your [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[15],"tags":[],"class_list":["post-3874","post","type-post","status-publish","format-standard","hentry","category-code"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5Unzf-10u","jetpack-related-posts":[{"id":2762,"url":"https:\/\/www.gubatron.com\/blog\/frostwire-for-android-breaks-past-its-first-250k-lines-of-source-code\/","url_meta":{"origin":3874,"position":0},"title":"FrostWire for Android breaks past its first 250k lines of source code","author":"gubatron","date":"July 31, 2012","format":false,"excerpt":"-------------------------------------------------------------------------------- Language files blank comment code -------------------------------------------------------------------------------- Java 1950 101133 77855 256590 XML 126 480 2351 9308 XSD 2 28 57 187 Bourne Again Shell 1 30 17 147 -------------------------------------------------------------------------------- SUM: 2079 101671 80280 266232 -------------------------------------------------------------------------------- Help wanted","rel":"","context":"In &quot;Code&quot;","block_context":{"text":"Code","link":"https:\/\/www.gubatron.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3020,"url":"https:\/\/www.gubatron.com\/blog\/how-to-avoid-android-compilationbuilding-issues-setting-up-the-eclipse-buildpath-correctly\/","url_meta":{"origin":3874,"position":1},"title":"How to avoid Android compilation\/building issues &#8211; Setting up the Eclipse Buildpath correctly","author":"gubatron","date":"May 21, 2013","format":false,"excerpt":"This post is the product of about 48 hours of not being able to work on what I was supposed to be working because I had to deal with build issues in Eclipse. Hopefully If you follow these steps you will be able to solve some of the issues you\u2026","rel":"","context":"In &quot;Android&quot;","block_context":{"text":"Android","link":"https:\/\/www.gubatron.com\/blog\/category\/android\/"},"img":{"alt_text":"Screen Shot 2013-05-21 at 12.13.46 PM","src":"https:\/\/i0.wp.com\/www.gubatron.com\/blog\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-21-at-12.13.46-PM.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.gubatron.com\/blog\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-21-at-12.13.46-PM.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.gubatron.com\/blog\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-21-at-12.13.46-PM.png?resize=525%2C300 1.5x"},"classes":[]},{"id":2793,"url":"https:\/\/www.gubatron.com\/blog\/frostwire-for-android-1-0-preview-screenshots\/","url_meta":{"origin":3874,"position":2},"title":"FrostWire for Android 1.0 &#8211; Preview Screenshots","author":"gubatron","date":"October 25, 2012","format":false,"excerpt":"The following screens have been taken from the build currently running on my phone. We'll be releasing this baby in a few more days now, in the meantime you can try a similar build and let me know how it went.","rel":"","context":"In &quot;Android&quot;","block_context":{"text":"Android","link":"https:\/\/www.gubatron.com\/blog\/category\/android\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.gubatron.com\/blog\/wp-content\/uploads\/2012\/10\/frostwire-for-android.1.0.x-4.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":3351,"url":"https:\/\/www.gubatron.com\/blog\/oneplus-one-unboxing\/","url_meta":{"origin":3874,"position":3},"title":"OnePlus One unboxing","author":"gubatron","date":"September 10, 2014","format":false,"excerpt":"Charger and phone come in separate boxes. Charger does not come with a cable. The phone does. I guess it must be a statement for modularity and perhaps you get to buy only the accesories you need, if you need just a cable, you just buy the cable. It's a\u2026","rel":"","context":"In &quot;Android&quot;","block_context":{"text":"Android","link":"https:\/\/www.gubatron.com\/blog\/category\/android\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2931,"url":"https:\/\/www.gubatron.com\/blog\/how-to-enable-adb-logcat-debugging-output-on-android-4\/","url_meta":{"origin":3874,"position":4},"title":"How to enable adb logcat  on Android 4 (debugging output)","author":"gubatron","date":"March 4, 2013","format":false,"excerpt":"So you got a new Nexus or another Android running Android +4.2 and there's no \"Applications\" menu entry in the settings menu. No worries. Go to the \"About phone\" entry at the bottom of settings, then scroll all the way down to the \"Build number\" menu entry. Tap on it\u2026","rel":"","context":"In &quot;Code&quot;","block_context":{"text":"Code","link":"https:\/\/www.gubatron.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1102,"url":"https:\/\/www.gubatron.com\/blog\/britney-breaks-the-ice-with-anime-fans\/","url_meta":{"origin":3874,"position":5},"title":"Britney Breaks the ice with Anime Fans","author":"gubatron","date":"January 13, 2009","format":false,"excerpt":"A little too many references to Matrix, but it's pretty cool. Seems like it's part one of more to come. Britney Spears - Break The Ice","rel":"","context":"In &quot;Music Videos&quot;","block_context":{"text":"Music Videos","link":"https:\/\/www.gubatron.com\/blog\/category\/videos\/music-videos\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/posts\/3874","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/comments?post=3874"}],"version-history":[{"count":6,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/posts\/3874\/revisions"}],"predecessor-version":[{"id":3881,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/posts\/3874\/revisions\/3881"}],"wp:attachment":[{"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/media?parent=3874"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/categories?post=3874"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/tags?post=3874"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}