Подтвердить что ты не робот

React Native Android Build Error MainActivity.java:29: ошибка: не удается найти символ

Я получаю эту ошибку при попытке скомпилировать приложение React Native для Android. Приложение Android не может разрешить BuildConfig.DEBUG.

:app:processDebugJavaRes UP-TO-DATE
:app:compileDebugJavaWithJavac
/Users/amirsharif/mobile-rappad/android/app/src/main/java/com/rappadmobile/MainActivity.java:29: error: cannot find symbol
                .setUseDeveloperSupport(BuildConfig.DEBUG)
                                        ^
  symbol:   variable BuildConfig
  location: class MainActivity
>1 error
:app:compileDebugJavaWithJavac FAILED

Я могу временно решить его, просто установив его в true. Возможно, это произошло после того, как я изменил имя приложения (так как я тоже пытался это сделать).

Мне, вероятно, нужно что-то изменить с помощью Gradle, чтобы он снова воспроизводил нужные файлы.

/**
 * Automatically generated file. DO NOT MODIFY
 */
package com.app;

public final class BuildConfig {
  public static final boolean DEBUG = Boolean.parseBoolean("true");
  public static final String APPLICATION_ID = "com.rappadmobile";
  public static final String BUILD_TYPE = "debug";
  public static final String FLAVOR = "";
  public static final int VERSION_CODE = 1;
  public static final String VERSION_NAME = "1.0";
}
4b9b3361

Ответ 1

Я перестроил проект react-native upgrade. Моя проблема заключалась в том, что у меня были старые файлы, ссылающиеся на старые имена пакетов (потому что я изменил имя приложения в package.json). Удалив их, я решил проблему.

Ответ 2

Способ android знает, где найти определенные файлы и как подключать определенные файлы, используя поля, установленные в AndroidManifest.xml. Поскольку стандартная настройка проекта React Native ссылается на все с. (Имя-ресурс), это означает, что все будет разрешено в отношении имени пакета, установленного в теге <manifest>. Поэтому для того, чтобы все работало из коробки и все, что должно быть создано, как и ожидалось, путь к MainActivity.java должен быть таким же, как имя пакета.

Пример:

имя вашего приложения: com.mycompanyname.myappname

местоположение MainActivity.java: android/app/src/main/java/com/mycompanyname/myappname/MainActivity.java

Ответ 3

У меня была та же проблема, и она была решена путем простого добавления следующего оператора импорта в MainApplication.java:

import com.facebook.react.BuildConfig;

Ответ 4

В MainActivity.java вы можете проверить, что первая строка package com.YOU_APP_NAME;

Если эта строка не существует, вы должны добавить это.

Ответ 5

В моем случае я изменил имя пакета как в файле BUCK, так и в файле манифеста.

В файле BUCK измените его следующим образом.

android_build_config(
    name = "build_config",
    package = "NEW_PACKAGE_NAME",
)

android_resource(
    name = "res",
    package = "NEW_PACKAGE_NAME",
    res = "src/main/res", )

Ответ 6

Комбинация некоторых ответов помогла мне, резюме:

  • Убедитесь, что имена ваших java-пакетов верны (MainApplication.java и т.д.)
  • обновить имя пакета в файле сборки Gradle
  • обновить имя пакета в файле манифеста
  • обновить имя пакета в файле BUCK
  • убедитесь, что путь к вашим источникам JavaScript - это структура папок, соответствующая имени вашего пакета

Ответ 7

Обновление реагирует на эту ошибку -

react-native upgrade

Теперь строить снова -

react-native run-android

Ответ 8

Удалите старые файлы, которые могут находиться в файле android/app/src/main/java/com Просто сохраните файл с новым именем приложения. Затем сделайте react-native upgrade.

Ответ 9

Проверьте, не пропустили ли вы установку обработчика реакции-нативного жеста.

с пряжей

пряжа добавить реакцию-родной-жест-обработчик

или с нпм

npm install --save реакция-нативный-жест-обработчик

затем

реакция-нативная ссылка реакция-нативный-жест-обработчик