React Native AndroidビルドエラーMainActivity.java:29:エラー:シンボルが見つかりません


82

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

回答:


113

同じ問題が発生しましたが、次のインポートステートメントを次のように追加するだけで解決しましたMainApplication.java

import com.facebook.react.BuildConfig;

動作します。どうも。私のエラーは:エラー:シンボルが見つかりませんreturn BuildConfig.DEBUG; // ------これは、インポートせずにコードで参照されます。^シンボル:変数BuildConfig
MPV

1
チャームのように働いた!:)
AndrewHenderson 2018年

これはうまくいきましたが、なぜ手動で追加しなければならなかったのかは謎です。:肩をすくめる:
マイク

あなたには私の時間があります。本当にありがとう!!
AnilkumariOS-ReactNative19年

2
警告、react-nativeでこれを行うと、アプリがクラッシュする可能性があります。github.com/wix/react-native-navigation/issues/...
illiteratewriter

81

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


5
パッケージ名「com.mycompany.myapp」では大文字と小文字が区別されます。また、/ android / app / build.gradleのapplicationIdを変更する必要があります
Ed of the Mountain

1
それはまさに私の問題でした、ありがとう。アプリの名前を変更しようとしましたが、場所によっては名前が変わってしまいました。ファイルシステムフォルダー、app / build.gradle applicationId、AndroidManifex.xmlの「package」属性、およびMainActivity.javaとMainApplication.javaのパッケージインポートで、アプリ名が類似していてすべて小文字であることを確認する必要がありました。 -ビルドはその後通過しました。
Alexey Grinko

40

でプロジェクトを再構築しましたreact-native upgrade。私の問題は、古いパッケージ名を参照している古いファイルがあることでした(でアプリの名前を変更したためpackage.json)。それらを削除したら、問題を解決しました。


どうもありがとうございます!これを理解しようとして何日も過ごしました。
David B.

古いAppNameは私とディレクトリは./android/app/src/main/java/com ..and ./iosで見つけることができます削除するのに必要な
レモ

魅力のように働いた
Jaseem Abbas 2017

34

あなたの中でMainActivity.java、あなたは最初の行がpackage com.YOU_APP_NAME;

この行が存在しない場合は、これを追加する必要があります。


パッケージ名を変更しようとしましたが、これが最後に忘れてしまったことです。Thnx!
Mats de Swart 2016年

3
参考までに:MainApplication.javaのパッケージ名も変更する必要がありました。
bardu 2016

15

私の場合、BUCKファイルとマニフェストファイルの両方でパッケージ名を変更しました。

BUCKファイルで次のように変更します。

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

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

1
これを実行して私のケースを解決し、プロジェクト内のすべてのJavaファイルのパッケージの名前を変更しました
Antoine Auffray 2018年

13

いくつかの答えの組み合わせが私を助けました、要約:

  • Javaパッケージ名が正しいことを確認してください(MainApplication.javaなど)
  • Gradleビルドファイルのパッケージ名を更新します
  • マニフェストファイルのパッケージ名を更新します
  • BUCKファイル内のパッケージ名を更新します
  • javascriptソースへのパスがパッケージ名と一致するフォルダー構造であることを確認してください

最初のポイント「JavaScriptパッケージ名が正しいことを確認してください」-私たちは話してpackage.jsonいるのですか、そして「接続」とはどういう意味ですか?
Norfeldt 2018年

これはもう少し前のことです...しかし、パッケージ名では、「package com.yourname.yourproject」のようなJavaファイルの最初の行を意味します
WiRa

6

react-nativeをアップグレードすると、このエラーが解決しました-

react-native upgrade

もう一度ビルドします-

react-native run-android

特定のファイルへのいくつかの変更を破棄しますが、素晴らしい提案です。react-native linkネイティブの依存関係を再リンクするために、後で再度実行する必要がありました。
エリオット

5

名前bundle identifierを変更した場合は、次の変更が必要になる可能性があります。

あなたのandroid/app/src/main/....../MainApplication.java パッケージインポート

react-native-rename npmパッケージを使用しましたが、一部のファイルMainApplication.javaとは処理されませんでしたMainActivity.java


1
ありがとう、あなたはニューヨークを救う
Arslan Bajwa

3

android / app / src / main / java / comにある可能性のある古いファイルを削除します。ファイルをアプリ の新しい名前のままにします。次に、実行しますreact-native upgrade


0

react-native-gesture-handlerのインストールを見逃していないかどうかを確認してください。

糸で

糸はreact-native-gesture-handlerを追加します

またはnpmで

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

次に

react-nativeリンクreact-native-gesture-handler


0

https://dev.to/karanpratapsingh/quick-guide-for-updating-package-name-in-react-native-3ei3をフォローしているときにこれを経験しました。私はから自分のアプリケーションの名前を変更したcom.company_appcom.mycompany.myapp、私はガイドが唯一の一般的なためであると考え、どうやら、私はまだ更新に必要な私は、次のされたガイドには含まれていなかったことをいくつかのファイルがあった、新鮮なように反応し、ネイティブアプリを私が解決しましたこれは、グローバル検索を実行し、意味のあるときcom.company_appにそれぞれを置き換えるcom.mycompany.myappことによって行われます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.