ChatGPT解决这个技术问题 Extra ChatGPT

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";
}

M
Manoj Goel

我遇到了同样的问题,只需在 MainApplication.java 中添加以下导入语句即可解决:

import com.facebook.react.BuildConfig;

作品。谢谢。我的错误是:错误:找不到符号返回 BuildConfig.DEBUG; // ------这是在没有导入的代码中引用的。 ^ 符号:变量 BuildConfig
像魅力一样工作! :)
这行得通,但为什么我必须手动添加它是一个谜。 :耸肩:
你有我的时间。非常感谢!!
警告,在 react-native 中执行此操作可能会导致应用程序崩溃。 github.com/wix/react-native-navigation/issues/…
M
Mr Lister

android 知道在哪里找到某些文件以及如何连接某些文件的方式是使用 AndroidManifest.xml 中设置的字段。由于 React Native 项目的默认设置使用 .(name-of-resource) 引用所有内容,这意味着所有内容都将通过 <manifest> 标记中设置的包名称来解决。因此,为了使所有东西都能开箱即用,并按预期生成,MainActivity.java 的路径应该与包名相同。

例子:

您的应用程序包名称:com.mycompanyname.myappname

MainActivity.java 的位置:android/app/src/main/java/com/mycompanyname/myappname/MainActivity.java


包名“com.mycompany.myapp”区分大小写。您还必须更改 /android/app/build.gradle 中的 applicationId
这正是我的问题,谢谢。我曾尝试重命名该应用程序,但最终在某些地方使用了不同的名称。我必须确保应用程序名称在文件系统文件夹、app/build.gradle applicationId、AndroidManifex.xml“package”属性以及 MainActivity.java 和 MainApplication.java 的包导入中的应用程序名称相似且全部小写- 构建之后通过。
这是正确的答案,而不是@Manoj 的答案。我们不需要手动导入 BuildConfig。
O
Overload119

我用 react-native upgrade 重建了项目。我的问题是我有引用旧包名称的旧文件(因为我在 package.json 中更改了应用程序的名称)。删除这些后,我解决了问题。


太感谢了!花了几天时间试图弄清楚这一点。
我需要删除的具有旧 AppName 的目录可以在 ./android/app/src/main/java/com ..和 ./ios 中找到
像魅力一样工作
R
Rom1

在您的 MainActivity.java 中,您可以检查第一行是 package com.YOU_APP_NAME;

如果此行不存在,则应添加此行。


我试图更改我的包裹名称,这是我忘记的最后一件事!谢谢!
仅供参考:我还需要更改 MainApplication.java 中的包名称。
T
Tonithy

一些答案的组合帮助了我,总结:

确保您的 java 包名称正确(MainApplication.java 等)

更新 gradle 构建文件中的包名

更新清单文件中的包名

更新 BUCK 文件中的包名

确保您的 javascript 源的路径是与您的包名称匹配的文件夹结构


第一点“确保您的 javascript 包名称正确” - 我们在谈论 package.json 吗?您所说的“连接”是什么意思?
这已经是前一阵子了......但是对于包名称,我的意思是java文件中的第一行类似于'package com.yourname.yourproject'
K
Kurt Harrison

就我而言,我更改了 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", )

通过这样做+重命名项目中所有和每个Java文件中的包解决了我的问题
o
ofundefined

如果您重命名了 bundle identifier,您可能需要更改:

您的android/app/src/main/....../MainApplication.java packageimports

即使我使用了 react-native-rename npm package,它也没有处理一些文件 MainApplication.javaMainActivity.java


T
Tamandeep Singh

升级 react-native 解决了这个错误 -

react-native upgrade

现在再次构建 -

react-native run-android

很好的建议,尽管它确实会破坏对某些文件的一些修改。在重新链接本机依赖项后,我不得不再次运行 react-native link
A
Ankur Kedia

删除 android/app/src/main/java/com 中可能存在的旧文件,只需使用应用程序的新名称保留文件即可。然后执行react-native upgrade


G
GeekDev

我的情况是我在一个地方重命名了包(AndroidManifest.xml) 例如:原来的:com.example 改为:com.example.app

再次重命名解决了问题


N
Nadeeshan Herath

检查您是否错过了安装 react-native-gesture-handler。

用纱

纱线添加反应原生手势处理程序

或使用 npm

npm install --save react-native-gesture-handler

然后

react-native 链接 react-native-gesture-handler


a
aprilmintacpineda

我在关注 https://dev.to/karanpratapsingh/quick-guide-for-updating-package-name-in-react-native-3ei3 时遇到了这种情况。我正在将我的应用程序从 com.company_app 重命名为 com.mycompany.myapp,显然,我仍然需要更新一些文件,但未包含在我遵循的指南中,我认为该指南仅适用于一般情况,就像一个新的反应-native 应用程序,我通过对 com.company_app 进行全局搜索来解决这个问题,并在有意义的时候将每个替换为 com.mycompany.myapp


D
Dharman

我按照以下步骤修复了它:Android版本:从终端转到android文件夹并运行此命令:gradlew clean

从主项目文件夹中删除此文件夹:node_modules

从菜单文件:使缓存无效并重新启动 IDE

找到您的 MainActivity.java 文件并添加此导入行: import com.facebook.react.BuildConfig;

在终端中,转到 android 文件夹并运行:gradlew

在终端中,转到主根目录并运行:yarn install

现在您可以启动 Metro 并运行该应用程序。

PS:确保进入 MainActivity.java 文件的 bundleID 名称是正确的。您会在第一行找到它。然后,确保 MainActivity.java 文件位于正确的路径中,如下所示: project_name/Android/App/src/main/java/1/2/3/MainActivity.java 其中 1/2/3 必须是名称您的 bundleID,例如 com/bundle/id


佚名

似乎您已在所有文件中更新了您的包名称,但未能更改我们将与您的包名称相同的文件夹名称。

android < src < main < java < com < "middlen_package_name" < "last_package_name"。

例如:com.yourapp.gameapp;

再次运行应用程序,但如果它仍然显示此错误,那么,

检查是否有旧包名的文件夹。删除它并再次重建。

快乐编码。