Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialtshuutheniemvula
7,251 PointsParse Push Notification Android TOP LEVEL Exception
I'm getting a gradle build exception and I can't quite figure out where it arises from. I think it's something to do with the dependencies.
The gradle error is:
UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Lcom/parse/ParseAuthenticationProvider; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170) at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) at com.android.dx.command.dexer.Main.run(Main.java:230) at com.android.dx.command.dexer.Main.main(Main.java:199) at com.android.dx.command.Main.main(Main.java:103)
Anyone had this issue?
2 Answers
Steve Hunter
57,712 PointsLuke Liem
6,367 PointsI got exactly the same error after following the video tutorial. I looked up Stackoverflow and most of the posts said this build error has to do with dependencies error in the build.gradle, whereby certain jar files have been compiled twice in a row.
The problem with the current TreeHouse Video Tutorial is as followed. It first instructs us to copy the Parce jar files into the lib folder, then it asks us to follow the PARSE Tutorial to add the following dependencies into our project build.gradle:
dependencies { compile 'com.parse.bolts:bolts-android:1.+' compile 'com.parse:parse-android:1.+' }
However, my build.gradle originally have the following dependencies
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:support-v13:22.2.1' compile 'com.jakewharton:butterknife:7.0.1' }
After adding the new dependencies, it becomes
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:support-v13:22.2.1' compile 'com.jakewharton:butterknife:7.0.1' compile 'com.parse.bolts:bolts-android:1.+' compile 'com.parse:parse-android:1.+' }
Since these two Parse jar files are already in the lib folder, they are now being compiled twice.
The simple fix is to simply revert back to the old dependencies: dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:support-v13:22.2.1' compile 'com.jakewharton:butterknife:7.0.1' }
tshuutheniemvula
7,251 Pointstshuutheniemvula
7,251 PointsHi again Steve! Hope all's well! It was a dependency issue but rather with the bolts Jar file included in the Parse SDK, it has to be placed inside the libs folder and that did the trick for me. Adding the compile statements to build file as instructed in the post was also fix but then it rendered the SectionPagerAdapater useless as it also uses the support library. Thanks anyway!