Ответ 1
Я смог исправить это, нажав на элемент ToolBar Build --> Clean Project
. Это исправлено.
Недавно я обновил свою Android-студию, так как тогда мой проект не строится... Я получаю ошибки, такие как ошибка ниже:
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)
У меня есть много таких ошибок... Наверное, это связано с прописными буквами? Я хотел узнать о возможном разрешении этой ошибки.
Это полный отчет об ошибке для одного из исключений:
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
Каждый раз, когда Android Studio обновляется, он путается с моими проектами, и мне приходится тратить много времени, чтобы конвертировать проекты в совместимость с новыми версиями!
Я смог исправить это, нажав на элемент ToolBar Build --> Clean Project
. Это исправлено.
Имена ваших каталогов должны соответствовать точно с именами пакетов, объявленных в вашем манифесте. Поэтому, если у вас есть:
com/SomeDirectory/package, тогда ваш пакет в манифесте должен быть: пакет = "com.SomeDirectory.package"
В вашем случае похоже, что вы назвали одну "деятельность" и другие "действия".
У меня была та же проблема. Интересно, как маленькая вещь, подобная этой, может заблокировать вас от создания вашего приложения. Проблема на моей стороне была в файле AndroidManifest.xml:
<manifest
package="silviu.mypack"
xmlns:android="http://schemas.android.com/apk/res/android">
Вместо "silviu.mypack" у меня была "silviu.mypackage". Я сделал рефакторинг раньше, и это не изменилось.
Удачи всем!
В моем случае у меня было перечисление с именем CODES
и внутренний класс под названием CODES
. Видимо, это вызывает проблемы. Поскольку CODES
была заменой для CODES
, я легко мог ее исправить, удалив все оставшиеся ссылки на перечисление и, наконец, удалив перечисление, имеющее только на предмет, называемый кодами в моем классе.