react-nativeupgrade

Execution failed for task ':app:compileDebugJavaWithJavac' after react native upgrade to 0.69.12


I am currently upgrading my react native version from 0.62.2 to 0.69.12 and is facing this blocker.

/Users/User/Projects/Mobile/android/app/src/main/java/com/syntrinos/mobile/hrms/MainApplication.java:13: error: package com.github.yamill.orientation does not exist
import com.github.yamill.orientation.OrientationPackage;
                                    ^
/Users/User/Projects/Mobile/android/app/src/main/java/com/syntrinos/mobile/hrms/MainApplication.java:26: error: package com.apsl.versionnumber does not exist
import com.apsl.versionnumber.RNVersionNumberPackage;
                             ^
/Users/User/Projects/Mobile/android/app/src/main/java/com/syntrinos/mobile/hrms/MainApplication.java:28: error: package org.devio.rn.splashscreen does not exist
import org.devio.rn.splashscreen.SplashScreenReactPackage;
                                ^
/Users/User/Projects/Mobile/android/app/src/main/java/com/syntrinos/mobile/hrms/MainApplication.java:36: error: package com.reactnativedocumentpicker does not exist
import com.reactnativedocumentpicker.ReactNativeDocumentPicker;
                                    ^
/Users/User/Projects/Mobile/android/app/src/main/java/com/syntrinos/mobile/hrms/MainApplication.java:37: error: package com.reactlibrary does not exist
import com.reactlibrary.RNReactNativeDocViewerPackage;
                       ^
/Users/User/Projects/Mobile/android/app/src/main/java/com/syntrinos/mobile/hrms/MainActivity.java:5: error: package org.devio.rn.splashscreen does not exist
import org.devio.rn.splashscreen.SplashScreen;
                                ^
/Users/User/Projects/Mobile/android/app/build/generated/rncli/src/main/java/com/facebook/react/PackageList.java:39: error: package com.reactlibrary does not exist
import com.reactlibrary.RNReactNativeDocViewerPackage;
                       ^
/Users/User/Projects/Mobile/android/app/build/generated/rncli/src/main/java/com/facebook/react/PackageList.java:41: error: package com.reactnativedocumentpicker does not exist
import com.reactnativedocumentpicker.ReactNativeDocumentPicker;
                                    ^
/Users/User/Projects/Mobile/android/app/build/generated/rncli/src/main/java/com/facebook/react/PackageList.java:61: error: package com.github.yamill.orientation does not exist
import com.github.yamill.orientation.OrientationPackage;
                                    ^
/Users/User/Projects/Mobile/android/app/build/generated/rncli/src/main/java/com/facebook/react/PackageList.java:69: error: package org.devio.rn.splashscreen does not exist
import org.devio.rn.splashscreen.SplashScreenReactPackage;
                                ^
/Users/User/Projects/Mobile/android/app/build/generated/rncli/src/main/java/com/facebook/react/PackageList.java:77: error: package com.apsl.versionnumber does not exist
import com.apsl.versionnumber.RNVersionNumberPackage;
                             ^
/Users/User/Projects/Mobile/android/app/src/main/java/com/syntrinos/mobile/hrms/MainApplication.java:80: error: cannot find symbol
            new OrientationPackage(),
                ^
  symbol: class OrientationPackage
/Users/User/Projects/Mobile/android/app/src/main/java/com/syntrinos/mobile/hrms/MainApplication.java:91: error: cannot find symbol
            new RNVersionNumberPackage(),
                ^
  symbol: class RNVersionNumberPackage
/Users/User/Projects/Mobile/android/app/src/main/java/com/syntrinos/mobile/hrms/MainApplication.java:93: error: cannot find symbol
            new SplashScreenReactPackage(),
                ^
  symbol: class SplashScreenReactPackage
/Users/User/Projects/Mobile/android/app/src/main/java/com/syntrinos/mobile/hrms/MainApplication.java:102: error: cannot find symbol
            new ReactNativeDocumentPicker(),
                ^
  symbol: class ReactNativeDocumentPicker
/Users/User/Projects/Mobile/android/app/src/main/java/com/syntrinos/mobile/hrms/MainApplication.java:103: error: cannot find symbol
            new RNReactNativeDocViewerPackage(),
                ^
  symbol: class RNReactNativeDocViewerPackage
/Users/User/Projects/Mobile/android/app/src/main/java/com/syntrinos/mobile/hrms/MainActivity.java:20: error: cannot find symbol
        SplashScreen.show(this,R.style.SplashTheme);  // here 
        ^
  symbol:   variable SplashScreen
  location: class MainActivity
/Users/User/Projects/Mobile/android/app/build/generated/rncli/src/main/java/com/facebook/react/PackageList.java:141: error: cannot find symbol
      new RNReactNativeDocViewerPackage(),
          ^
  symbol:   class RNReactNativeDocViewerPackage
  location: class PackageList
/Users/User/Projects/Mobile/android/app/build/generated/rncli/src/main/java/com/facebook/react/PackageList.java:142: error: cannot find symbol
      new ReactNativeDocumentPicker(),
          ^
  symbol:   class ReactNativeDocumentPicker
  location: class PackageList
/Users/User/Projects/Mobile/android/app/build/generated/rncli/src/main/java/com/facebook/react/PackageList.java:152: error: cannot find symbol
      new OrientationPackage(),
          ^
  symbol:   class OrientationPackage
  location: class PackageList
/Users/User/Projects/Mobile/android/app/build/generated/rncli/src/main/java/com/facebook/react/PackageList.java:156: error: cannot find symbol
      new SplashScreenReactPackage(),
          ^
  symbol:   class SplashScreenReactPackage
  location: class PackageList
/Users/User/Projects/Mobile/android/app/build/generated/rncli/src/main/java/com/facebook/react/PackageList.java:160: error: cannot find symbol
      new RNVersionNumberPackage(),
          ^
  symbol:   class RNVersionNumberPackage
  location: class PackageList
22 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details

I have tried changing JDK version, removing node modules and doing yarn install.

Please advice.


Solution

  • OK, since you are new to react-native, I think I can answer it in shortly.

    The message you provide shows that, these packages are not referenced properly, so the build system can not find them. These packages include: com.github.yamill.orientation, com.apsl.versionnumber, org.devio.rn.splashscreen, etc.

    1. You should check these packages, and where are they installed, sometimes you need to update these packages too.
    2. Given that you're updating your project, it's possible that these packages do not support auto-linking with the version you're using. This feature automatically links native dependencies, but not all versions of packages support it.
    3. For packages that don't support auto-linking, you'll need to manually link them. Check your android/settings.gradle file to ensure these packages are included as sub-projects. In the era before auto-linking, we manually linked React Native packages like so:
    include ':react-native-mypackage'
    project(':react-native-mypackage').projectDir = new File(rootProject.projectDir, '../my/path/to/react-native-mypackage/android')
    
    1. If these packages now support auto-linking, you should remove the manual links from MainApplication.java and settings.gradle.

    Always ensure that your React Native environment is configured correctly to recognize these dependencies.