Reputation: 14112
I have recently updated my Android Studio, since then my project does not build...I get errors like the error below:
Error Code:
1
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException:
class name (org/pervasivesystems/mobilehealth/activities/AppSettingsActivity$AppSettingsFragment)
does not match path
(org/pervasivesystems/mobilehealth/Activities/AppSettingsActivity$AppSettingsFragment.class)
I have many of these errors...I guess it has something to do with the capital letters? I wanted to know any possible soloution to this kind of error.
This is the full error report for one of the exceptions:
Error Code:
1
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name (org/pervasivesystems/mobilehealth/activities/AppSettingsActivity$AppSettingsFragment) does not match path (org/pervasivesystems/mobilehealth/Activities/AppSettingsActivity$AppSettingsFragment.class)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:665)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)
at com.android.dx.command.dexer.Main.access$600(Main.java:78)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:596)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)
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)
...while parsing org/pervasivesystems/mobilehealth/Activities/AppSettingsActivity$AppSettingsFragment.class
Everytime that Android Studio gets updated it messes my projects and I have to put tons of time to convert projects to be compatible with new versions!
Upvotes: 22
Views: 16498
Reputation: 2049
I had the same problem. It's interesting how a small thing like this can block you from building your app. The problem on my side was in AndroidManifest.xml file:
<manifest
package="silviu.mypack"
xmlns:android="http://schemas.android.com/apk/res/android">
Instead of "silviu.mypack" I had "silviu.mypackage". I did a refactoring earlier and this didn't change.
Good luck to everybody!
Upvotes: 2
Reputation: 669
The names of your directories have to match exactly with the names of the packages declared in your manifest. So if you have:
com/SomeDirectory/package then your package in the manifest has to be: package="com.SomeDirectory.package"
In your case it looks like you'd called one "activities" and the other "Activities".
Upvotes: 5
Reputation: 3161
In my case I had an enum named CODES
and an inner class called Codes
. Apparently this causes trouble. Since Codes
was the replacement for CODES
I was easily able to fix it by removing all remaining references to the enum and finally by removing the enum having only on thing called codes in my class.
Upvotes: 1
Reputation: 3512
I was able to fix this by clicking on the ToolBar item Build --> Clean Project
. This fixed things fine.
Upvotes: 62