Ответ 1
Я перестроил проект react-native upgrade
.
Моя проблема заключалась в том, что у меня были старые файлы, ссылающиеся на старые имена пакетов (потому что я изменил имя приложения в package.json
). Удалив их, я решил проблему.
Я получаю эту ошибку при попытке скомпилировать приложение 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";
}
Я перестроил проект react-native upgrade
.
Моя проблема заключалась в том, что у меня были старые файлы, ссылающиеся на старые имена пакетов (потому что я изменил имя приложения в package.json
). Удалив их, я решил проблему.
Способ android знает, где найти определенные файлы и как подключать определенные файлы, используя поля, установленные в AndroidManifest.xml. Поскольку стандартная настройка проекта React Native ссылается на все с. (Имя-ресурс), это означает, что все будет разрешено в отношении имени пакета, установленного в теге <manifest>
. Поэтому для того, чтобы все работало из коробки и все, что должно быть создано, как и ожидалось, путь к MainActivity.java должен быть таким же, как имя пакета.
Пример:
имя вашего приложения:
com.mycompanyname.myappname
местоположение MainActivity.java: android/app/src/main/java/com/mycompanyname/myappname/MainActivity.java
У меня была та же проблема, и она была решена путем простого добавления следующего оператора импорта в MainApplication.java
:
import com.facebook.react.BuildConfig;
В MainActivity.java
вы можете проверить, что первая строка package com.YOU_APP_NAME;
Если эта строка не существует, вы должны добавить это.
В моем случае я изменил имя пакета как в файле BUCK, так и в файле манифеста.
В файле BUCK измените его следующим образом.
android_build_config(
name = "build_config",
package = "NEW_PACKAGE_NAME",
)
android_resource(
name = "res",
package = "NEW_PACKAGE_NAME",
res = "src/main/res", )
Комбинация некоторых ответов помогла мне, резюме:
MainApplication.java
и т.д.)BUCK
Обновление реагирует на эту ошибку -
react-native upgrade
Теперь строить снова -
react-native run-android
Удалите старые файлы, которые могут находиться в файле android/app/src/main/java/com
Просто сохраните файл с новым именем приложения. Затем сделайте react-native upgrade
.
Проверьте, не пропустили ли вы установку обработчика реакции-нативного жеста.
пряжа добавить реакцию-родной-жест-обработчик
npm install --save реакция-нативный-жест-обработчик
реакция-нативная ссылка реакция-нативный-жест-обработчик