Форум русскоязычного сообщества Ubuntu
Страница сгенерирована за 0.042 секунд. Запросов: 25.
- Сайт
- Об Ubuntu
- Скачать Ubuntu
- Семейство Ubuntu
- Новости
- Форум
- Помощь
- Правила
- Документация
- Пользовательская документация
- Официальная документация
- Семейство Ubuntu
- Материалы для загрузки
- Совместимость с оборудованием
- RSS лента
- Сообщество
- Наши проекты
- Местные сообщества
- Перевод Ubuntu
- Тестирование
- RSS лента
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Saved searches
Use saved searches to filter your results more quickly
Cancel Create saved search
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ошибка при сборке проекта «error: cannot find symbol import examplePackage.MetaModel$ProfileScreenMetaModel;» #135
aaudin90 opened this issue Jul 9, 2021 · 5 comments
Ошибка при сборке проекта «error: cannot find symbol import examplePackage.MetaModel$ProfileScreenMetaModel;» #135
aaudin90 opened this issue Jul 9, 2021 · 5 comments
Comments
aaudin90 commented Jul 9, 2021
При сборке проекта с некоторой вероятностью в сгенерированном классе ProfileView$$State не находит нужный импорт на класс MetaModel.ProfileScreenMetaModel
В функции интерфейса MvpView используется тип MetaModel.ProfileScreenMetaModel
data class MetaModel( val verificationScreen: VerificationScreenMetaModel?, val restrictionsScreen: RestrictionsScreenMetaModel?, val profile: ProfileScreenMetaModel? )
Ошибка возникает примерно в 3-5% сборках и только с этим вложенным классом.
gradle plugin 4.1.3
moxy 2.2.2
kotlin 1.4.31
examplePath1/ProfileView$$State.java:4: error: cannot find symbol
import examplePackage.MetaModel$ProfileScreenMetaModel;
^
symbol: class MetaModel$ProfileScreenMetaModel
location: package examplePackage/examplePath/ProfileView$$State.java:357: error: cannot find symbol
public void setKycWidgetData(MetaModel$ProfileScreenMetaModel arg0, StatusType arg1,
^
symbol: class MetaModel$ProfileScreenMetaModel
location: class ProfileView$$State/examplePath/ProfileView$$State.java:765: error: cannot find symbol
public final MetaModel$ProfileScreenMetaModel arg0;
^
symbol: class MetaModel$ProfileScreenMetaModel
location: class ProfileView$$State.SetWidgetDataCommand/examplePath/ProfileView$$State.java:771: error: cannot find symbol
SetWidgetDataCommand(MetaModel$ProfileScreenMetaModel arg0, StatusType arg1,
^
symbol: class MetaModel$ProfileScreenMetaModel
location: class ProfileView$$State.SetWidgetDataCommand
The text was updated successfully, but these errors were encountered:
Как исправить ошибку «error cannot find symbol»?
Только начал учиться программированию. При компиляции файла Main.java выходит ошибка error cannot find symbol . Если я правильно понял, то он не взаимодействует с Person.java , а пытается выполнить всё в Main.java . Но как мне это решить? Всё ещё никак не могу понять. Main.java:
public class Main < public static void main(String[] args) < Person dima = new Person(); System.out.println(dima.height); >>
Person.java:
public class Person
Ошибка:
E:\study\java> javac Person.java E:\study\java> javac main.java main.java:3: error: cannot find symbol Person dima = new Person(); ^ symbol: class Person location: class main main.java:3: error: cannot find symbol Person dima = new Person(); ^ symbol: class Person location: class main 2 errors
Отслеживать
8,957 4 4 золотых знака 19 19 серебряных знаков 28 28 бронзовых знаков
задан 13 янв 2020 в 10:58
23 1 1 золотой знак 1 1 серебряный знак 3 3 бронзовых знака
Пожалуйста запустите в терминале echo %CLASSPATH% и пришлите что вывелось
13 янв 2020 в 12:17
Мне кажется, что в классе main не хватает импорта. Попробуйте добавить в начало import Person
13 янв 2020 в 12:40
Привет, можете почитать здесь pro-java.ru/java-dlya-nachinayushhix/import-paketov-v-java что указание import необязательно если используется полное имя класса, которое в нашем случае и есть Person , так что ошибка не в этом.
13 янв 2020 в 12:46
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Такое поведение скорее всего связано с переменной %CLASSPATH% в которой перечислены папки где javac будет искать .class файлы для компиляции. По умолчанию эта переменная окружения не задана и тогда javac ищет .class файлы только в текущей папке.
Скорее всего у вас эта переменная была задана ранее (можно проверить при помощи echo %CLASSPATH% ) и тогда текущую папку нужно указывать вручную, например через
javac main.java --class-path .
( . означает текущую директорию)
Если не хочется каждый раз вручную указывать —class-path . можно очистить %CLASSPATH% при помощи set CLASSPATH=
Обратите внимание что необязательно даже вызывать javac Person.java , компилятор автоматически скомпилирует Person.java
Вот пример запуска на моем компьютере (у меня линукс поэтому синтаксис немного отличается)
~/Workspace$ export CLASSPATH= ~/Workspace$ echo $CLASSPATH ~/Workspace$ javac Person.java ~/Workspace$ javac main.java ~/Workspace$ java main 189 ~/Workspace$ export CLASSPATH=/somedirectory ~/Workspace$ echo $CLASSPATH /somedirectory ~/Workspace$ javac Person.java ~/Workspace$ javac main.java main.java:3: error: cannot find symbol Person dima = new Person(); ^ symbol: class Person location: class main main.java:3: error: cannot find symbol Person dima = new Person(); ^ symbol: class Person location: class main 2 errors ~/Workspace$ javac main.java --class-path . ~/Workspace$ java main 189
Вопрос №22083 от пользователя Дмитрий Вадимович в уроке «Модуль 3. Урок 3. Уровни методов в Java.», курс «Введение в Java»
Добрый день. Подскажите, что не так? Всю голову сломал!
sources.txt javac @sources.txt -sourcepath src -d out -cp out ./src/io/hexlet/xo/controllers/WinnerController.java:10: error: cannot find symbol return х; ^ symbol: variable х location: class WinnerController ./src/io/hexlet/xo/controllers/CurrentMoveController.java:9: error: cannot find symbol return х; ^ symbol: variable х location: class CurrentMoveController 2 errors Makefile:2: recipe for target 'test' failed make: Leaving directory '/usr/src/app' make: *** [test] Error 1
package io.hexlet.xo.controllers; import io.hexlet.xo.model.Field; import io.hexlet.xo.model.Point; public class CurrentMoveController public String currentMove(Field field) return х; > >
package io.hexlet.xo.controllers; import io.hexlet.xo.model.Field; import io.hexlet.xo.model.Point; public class WinnerController public String getWinner(Field field) return х; > >
Ошибка простая в обоих методах. Тем более, что компилятор явно о ней говорит: error: cannot find symbol return х;
И в правду, а что это за x ? Какое значение у этой ссылки? Согласно объявлению — что должен возвращать метод?
Рекомендую повторить «Модуль 2. Урок 2. Типы данных в Java.»
