我在尝试编译我的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";
}
答案 0 :(得分:62)
android知道在哪里找到某些文件,以及如何连接某些文件,方法是使用AndroidManifest.xml中设置的字段。从React Native项目的默认设置开始,使用。(资源名称)引用所有内容,这意味着将根据<manifest>
标记中设置的包名解析所有内容。因此,对于开箱即用的所有内容以及按预期生成的所有内容,MainActivity.java的路径应与程序包名称相同。
示例:
您的应用包名称:
com.mycompanyname.myappname
MainActivity.java的位置:android/app/src/main/java/com/mycompanyname/myappname/MainActivity.java
答案 1 :(得分:50)
我遇到了同样的问题,只需在MainApplication.java
中添加以下导入语句即可解决:
import com.facebook.react.BuildConfig;
答案 2 :(得分:39)
我用react-native upgrade
重建了项目。
我的问题是我有旧文件引用旧包名(因为我在package.json
中更改了应用程序的名称)。删除后,我解决了这个问题。
答案 3 :(得分:31)
在MainActivity.java
中,您可以检查第一行是package com.YOU_APP_NAME;
如果此行不存在,则应添加此行。
答案 4 :(得分:8)
在我的情况下,我在BUCK文件和Manifest文件中都更改了包名。
在BUCK文件中更改如下。
android_build_config(
name = "build_config",
package = "NEW_PACKAGE_NAME",
)
android_resource(
name = "res",
package = "NEW_PACKAGE_NAME",
res = "src/main/res", )
答案 5 :(得分:6)
如果您重命名了catch
,则可能需要更改:
您的try {
const value = doSomethingSync();
// ...use `value`, then
doSomethingElseSync();
// ...
doYetAnotherSyncThing();
} catch (error) {
// Handle/report error here
}
包装和进口。
即使我使用了bundle identifier
npm package,它也无法处理某些文件android/app/src/main/....../MainApplication.java
和react-native-rename
。
答案 6 :(得分:5)
升级react-native解决了这个错误 -
react-native upgrade
现在再次建造 -
react-native run-android
答案 7 :(得分:4)
一些答案的组合帮助了我,摘要:
答案 8 :(得分:3)
删除 android / app / src / main / java / com 中可能存在的旧文件
只需使用应用程序的新名称保留文件即可。然后执行react-native upgrade
。
答案 9 :(得分:0)
检查是否错过了安装react-native-gesture-handler。
添加纱线react-native-gesture-handler
npm install-保存react-native-gesture-handler
react-native链接react-native-gesture-handler
答案 10 :(得分:0)
我在跟随https://dev.to/karanpratapsingh/quick-guide-for-updating-package-name-in-react-native-3ei3时遇到了这种情况。我正在将我的应用程序从com.company_app
重命名为com.mycompany.myapp
,显然,我仍然需要更新一些文件,但这些文件并未包含在我遵循的指南中,我认为该指南仅适用于一般情况,就像是一个全新的本机应用程序一样,我通过全局搜索com.company_app
并在需要时将它们替换为com.mycompany.myapp
来解决了这个问题。
答案 11 :(得分:0)
我按照以下步骤修复了它: 安卓版本: 从终端转到 android 文件夹并运行以下命令: 渐变干净
从主项目文件夹中删除此文件夹: 节点模块
从菜单文件: 使缓存无效并重新启动 IDE
找到您的 MainActivity.java 文件并添加以下导入行: 导入 com.facebook.react.BuildConfig;
在终端中,转到 android 文件夹并运行以下命令: 渐变
在终端中,转到主根目录并运行以下命令: 纱线安装
现在您可以启动 Metro 并运行应用程序。
P.S.:确保在 MainActivity.java 文件中的 bundleID 名称是正确的。您会在第一行找到它。然后,确保 MainActivity.java 文件位于正确的路径中,如下所示: project_name/Android/App/src/main/java/1/2/3/MainActivity.java 其中 1/2/3 必须是您的 bundleID 的名称,例如,com/bundle/id