尝试编译我的 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";
}
我遇到了同样的问题,只需在 MainApplication.java
中添加以下导入语句即可解决:
import com.facebook.react.BuildConfig;
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
我用 react-native upgrade
重建了项目。我的问题是我有引用旧包名称的旧文件(因为我在 package.json
中更改了应用程序的名称)。删除这些后,我解决了问题。
在您的 MainActivity.java
中,您可以检查第一行是 package com.YOU_APP_NAME;
如果此行不存在,则应添加此行。
一些答案的组合帮助了我,总结:
确保您的 java 包名称正确(MainApplication.java 等)
更新 gradle 构建文件中的包名
更新清单文件中的包名
更新 BUCK 文件中的包名
确保您的 javascript 源的路径是与您的包名称匹配的文件夹结构
package.json
吗?您所说的“连接”是什么意思?
就我而言,我更改了 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", )
如果您重命名了 bundle identifier
,您可能需要更改:
您的android/app/src/main/....../MainApplication.java
package 和 imports。
即使我使用了 react-native-rename
npm package,它也没有处理一些文件 MainApplication.java
和 MainActivity.java
。
升级 react-native 解决了这个错误 -
react-native upgrade
现在再次构建 -
react-native run-android
react-native link
。
删除 android/app/src/main/java/com 中可能存在的旧文件,只需使用应用程序的新名称保留文件即可。然后执行react-native upgrade
。
我的情况是我在一个地方重命名了包(AndroidManifest.xml) 例如:原来的:com.example 改为:com.example.app
再次重命名解决了问题
检查您是否错过了安装 react-native-gesture-handler。
用纱
纱线添加反应原生手势处理程序
或使用 npm
npm install --save react-native-gesture-handler
然后
react-native 链接 react-native-gesture-handler
我在关注 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
。
我按照以下步骤修复了它: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;
再次运行应用程序,但如果它仍然显示此错误,那么,
检查是否有旧包名的文件夹。删除它并再次重建。
快乐编码。