Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🔥Issue when upgrading from below RN 0.60 to RN above 0.60 - AndroidX #25924

Closed
wmonecke opened this issue Aug 2, 2019 · 16 comments
Closed
Labels
Bug Platform: Android Android applications. Stale There has been a lack of activity on this issue and it may be closed soon.

Comments

@wmonecke
Copy link

wmonecke commented Aug 2, 2019

React Native version:

  System:
    OS: macOS 10.14.5
    CPU: (8) x64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
    Memory: 4.76 GB / 16.00 GB
    Shell: 5.3 - /bin/zsh
  Binaries:
    Node: 8.9.4 - /usr/local/bin/node
    npm: 6.9.0 - /usr/local/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  SDKs:
    iOS SDK:
      Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
    Android SDK:
      API Levels: 23, 25, 26, 27, 28
      Build Tools: 26.0.2, 26.0.3, 27.0.2, 27.0.3, 28.0.2, 28.0.3
      System Images: android-28 | Google Play Intel x86 Atom, android-P | Google APIs Intel x86 Atom
  IDEs:
    Android Studio: 3.4 AI-183.6156.11.34.5692245
    Xcode: 10.1/10B61 - /usr/bin/xcodebuild
  npmPackages:
    react: 16.8.6 => 16.8.6 
    react-native: 0.60.4 => 0.60.4 
  npmGlobalPackages:
    create-react-native-app: 1.0.0
    react-native-cli: 2.0.1
    react-native-git-upgrade: 0.2.7

ISSUE
Hey guys! Updating from 0.59 to 0.60.4 has been such a pain. When trying to build Android using ./gradlew assembleRelease I get the following error:

> Task :app:compileReleaseJavaWithJavac FAILED
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:5: error: package android.support.multidex does not exist
import android.support.multidex.MultiDexApplication;
                               ^
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:7: error: cannot find symbol
import com.facebook.react.PackageList;
                         ^
  symbol:   class PackageList
  location: package com.facebook.react
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:41: error: cannot find symbol
public class MainApplication extends MultiDexApplication implements ReactApplication {
                                     ^
  symbol: class MultiDexApplication
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/SplashActivity.java:5: error: package android.support.v7.app does not exist
import android.support.v7.app.AppCompatActivity;
                             ^
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/SplashActivity.java:7: error: cannot find symbol
public class SplashActivity extends AppCompatActivity {
                                    ^
  symbol: class AppCompatActivity
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:43: error: incompatible types: MainApplication cannot be converted to Application
  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
                                                                       ^
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:52: error: cannot find symbol
      List<ReactPackage> packages = new PackageList(this).getPackages();
                                        ^
  symbol: class PackageList
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:54: error: no suitable method found for add(SvgPackage,RNFSPackage,RNDeviceInfo,PickerPackage,RNSentryPackage,RNLocationPackage,ReactVideoPackage,RNFirebasePackage,RNFetchBlobPackage,VectorIconsPackage,RNGooglePlacesPackage,RNFirebaseAuthPackage,LinearGradientPackage,RNGoogleSigninPackage,RNFirebaseAdMobPackage,SplashScreenReactPackage,RNFirebaseFirestorePackage,RNFirebaseMessagingPackage,RNFirebaseNotificationsPackage,ReactNativeLocalizationPackage)
      packages.add(
              ^
    method Collection.add(ReactPackage) is not applicable
      (actual and formal argument lists differ in length)
    method List.add(ReactPackage) is not applicable
      (actual and formal argument lists differ in length)
    method List.add(int,ReactPackage) is not applicable
      (actual and formal argument lists differ in length)
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:43: error: cannot find symbol
  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
                                                   ^
  symbol: constructor (MainApplication)
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:90: error: method does not override or implement a method from a supertype
  @Override
  ^
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:92: error: cannot find symbol
    super.onCreate();
    ^
  symbol:   variable super
  location: class MainApplication
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:93: error: cannot find symbol
    AppEventsLogger.activateApp(this);
    ^
  symbol:   variable AppEventsLogger
  location: class MainApplication
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:94: error: no suitable method found for init(MainApplication,boolean)
    SoLoader.init(this, /* native exopackage */ false);
            ^
    method SoLoader.init(Context,int) is not applicable
      (argument mismatch; MainApplication cannot be converted to Context)
    method SoLoader.init(Context,boolean) is not applicable
      (argument mismatch; MainApplication cannot be converted to Context)
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainActivity.java:13: error: cannot find symbol
        MainApplication.getCallbackManager().onActivityResult(requestCode, resultCode, data);
                       ^
  symbol:   method getCallbackManager()
  location: class MainApplication
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/SplashActivity.java:8: error: method does not override or implement a method from a supertype
  @Override
  ^
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/SplashActivity.java:10: error: cannot find symbol
    super.onCreate(savedInstanceState);
    ^
  symbol:   variable super
  location: class SplashActivity
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/SplashActivity.java:12: error: no suitable constructor found for Intent(SplashActivity,Class<MainActivity>)
    Intent intent = new Intent(this, MainActivity.class);
                    ^
    constructor Intent.Intent(String,Uri) is not applicable
      (argument mismatch; SplashActivity cannot be converted to String)
    constructor Intent.Intent(Context,Class<?>) is not applicable
      (argument mismatch; SplashActivity cannot be converted to Context)
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/SplashActivity.java:13: error: cannot find symbol
    startActivity(intent);
    ^
  symbol:   method startActivity(Intent)
  location: class SplashActivity
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/SplashActivity.java:14: error: cannot find symbol
    finish();
    ^
  symbol:   method finish()
  location: class SplashActivity
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
19 errors

I have no clue what to do since I have checked all possible stackoverflow/github issues I have seen. I appears as if it can't find the android folder in my node modules. Honestly, I have no clue.

android/build.gradle:

buildscript {
    ext {
        buildToolsVersion = "28.0.3"
        minSdkVersion = 16
        compileSdkVersion = 28
        targetSdkVersion = 28
        supportLibVersion = "28.0.0"
        googlePlayServicesAuthVersion = "15.0.1"
        googlePlayServicesVersion = "16.+"
        firebaseVersion = "17.3.4"
    }
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath('com.android.tools.build:gradle:3.4.2')
        classpath 'com.google.gms:google-services:4.3.0'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenLocal()
        maven { url "https://jitpack.io" }
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url("$rootDir/../node_modules/react-native/android")
        }
        maven {
            // Android JSC is installed from npm
            url("$rootDir/../node_modules/jsc-android/dist")
        }
    }
}

android/app/build.gradle:

apply plugin: "com.android.application"

import com.android.build.OutputFile

project.ext.react = [
    entryFile: "index.js",
    bundleCommand: "ram-bundle",
]

apply from: "../../node_modules/react-native/react.gradle"
apply from: "../../node_modules/react-native-sentry/sentry.gradle"

def enableSeparateBuildPerCPUArchitecture = false

def enableProguardInReleaseBuilds = false

android {
    compileSdkVersion rootProject.ext.compileSdkVersion

    defaultConfig {
        applicationId "com.moodpixel"
        vectorDrawables.useSupportLibrary = true
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 34
        versionName "3.1.1"
        multiDexEnabled true
    }
    dexOptions {
        jumboMode true
    }
    signingConfigs {
        release {
            if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                storeFile file(MYAPP_RELEASE_STORE_FILE)
                storePassword MYAPP_RELEASE_STORE_PASSWORD
                keyAlias MYAPP_RELEASE_KEY_ALIAS
                keyPassword MYAPP_RELEASE_KEY_PASSWORD
            }
        }
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
            def versionCodes = ["armeabi-v7a":1, "x86":2, "arm64-v8a": 3, "x86_64": 4]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            }
        }
    }
}

dependencies {
    // enabling multiDex for minSdkVersion below 20 (current is 16)
    implementation 'com.android.support:multidex:1.0.3'

    // 3rd party
    implementation project(':rn-fetch-blob')
    implementation project(':react-native-fs')
    implementation project(':react-native-svg')
    implementation project(':react-native-video')
    implementation project(':react-native-sentry')
    implementation project(':react-native-location')
    implementation project(':react-native-device-info')
    implementation project(':react-native-vector-icons')
    implementation project(':react-native-localization')
    implementation project(':react-native-splash-screen')
    implementation project(':react-native-google-signin')
    implementation project(':react-native-google-places')
    implementation project(':react-native-linear-gradient')
    implementation project(':react-native-image-crop-picker')
    
    // react-native-firebase
    implementation project(':react-native-firebase')
    implementation "com.google.android.gms:play-services-base:16.0.1"
    implementation 'com.google.firebase:firebase-analytics:17.0.1'
    implementation 'com.google.firebase:firebase-core:17.0.1'
    implementation 'com.google.firebase:firebase-auth:18.1.0'
    implementation 'com.google.firebase:firebase-firestore:20.2.0'
    implementation "com.google.firebase:firebase-ads:18.1.1"
    implementation "com.google.firebase:firebase-messaging:19.0.1"
    implementation 'me.leolin:ShortcutBadger:1.1.21@aar'
    implementation "com.google.android.gms:play-services-location:16.0.0"

    // react-native
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    implementation "com.facebook.react:react-native:+"  // From node_modules
}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}

apply plugin: 'com.google.gms.google-services'

settings.gradle:

rootProject.name = 'moodPixel'
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)

include ':react-native-sentry'
project(':react-native-sentry').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-sentry/android')
include ':react-native-image-crop-picker'
project(':react-native-image-crop-picker').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-image-crop-picker/android')
include ':react-native-google-places'
project(':react-native-google-places').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-google-places/android')
include ':react-native-location'
project(':react-native-location').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-location/android')
include ':react-native-video'
project(':react-native-video').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-video/android-exoplayer')
include ':react-native-firebase'
project(':react-native-firebase').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-firebase/android')
include ':react-native-linear-gradient'
project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-linear-gradient/android')
include ':react-native-vector-icons'
project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android')
include ':react-native-splash-screen'   
project(':react-native-splash-screen').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-splash-screen/android')
include ':react-native-device-info'
project(':react-native-device-info').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-device-info/android')
include ':react-native-localization'
project(':react-native-localization').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-localization/android')
include ':rn-fetch-blob'                                                                                                  
project(':rn-fetch-blob').projectDir = new File(rootProject.projectDir, '../node_modules/rn-fetch-blob/android')
include ':react-native-fs'
project(':react-native-fs').projectDir = new File(settingsDir, '../node_modules/react-native-fs/android')
include ':react-native-google-signin', ':app'
project(':react-native-google-signin').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-google-signin/android')
include ':react-native-svg'
project(':react-native-svg').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-svg/android')

include ':app'

MainApplication.java:

package com.moodpixel;

import android.app.Application;
import android.util.Log;
import android.support.multidex.MultiDexApplication;

import com.facebook.react.PackageList;
import com.facebook.hermes.reactexecutor.HermesExecutorFactory;
import com.facebook.react.bridge.JavaScriptExecutorFactory;

import com.horcrux.svg.SvgPackage;
import com.facebook.soloader.SoLoader;
import com.facebook.react.ReactPackage;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactApplication;
import io.sentry.RNSentryPackage;
import com.brentvatne.react.ReactVideoPackage;
import com.reactnative.ivpusic.imagepicker.PickerPackage;
import com.github.reactnativecommunity.location.RNLocationPackage;
import com.arttitude360.reactnative.rngoogleplaces.RNGooglePlacesPackage;

// react-native-firebase
import io.invertase.firebase.RNFirebasePackage;
import io.invertase.firebase.auth.RNFirebaseAuthPackage;
import io.invertase.firebase.admob.RNFirebaseAdMobPackage;
import io.invertase.firebase.firestore.RNFirebaseFirestorePackage;
import io.invertase.firebase.messaging.RNFirebaseMessagingPackage;
import io.invertase.firebase.notifications.RNFirebaseNotificationsPackage;

import com.rnfs.RNFSPackage;
import com.RNFetchBlob.RNFetchBlobPackage;
import com.learnium.RNDeviceInfo.RNDeviceInfo;
import com.oblador.vectoricons.VectorIconsPackage;
import com.BV.LinearGradient.LinearGradientPackage;
import co.apptailor.googlesignin.RNGoogleSigninPackage;
import org.devio.rn.splashscreen.SplashScreenReactPackage;
import com.babisoft.ReactNativeLocalization.ReactNativeLocalizationPackage;

import java.util.List;

public class MainApplication extends MultiDexApplication implements ReactApplication {

  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
    @Override
    public boolean getUseDeveloperSupport() {
      return BuildConfig.DEBUG;
    }

    @Override
    protected List<ReactPackage> getPackages() {
      @SuppressWarnings("UnnecessaryLocalVariable")
      List<ReactPackage> packages = new PackageList(this).getPackages();
      // Packages that cannot be autolinked yet can be added manually here, for example:
      packages.add(
        new SvgPackage(),
        new RNFSPackage(),
        new RNDeviceInfo(),
        new PickerPackage(),
        new RNSentryPackage(),
        new RNLocationPackage(),
        new ReactVideoPackage(),
        new RNFirebasePackage(),
        new RNFetchBlobPackage(),
        new VectorIconsPackage(),
        new RNGooglePlacesPackage(),
        new RNFirebaseAuthPackage(),
        new LinearGradientPackage(),
        new RNGoogleSigninPackage(),
        new RNFirebaseAdMobPackage(),
        new SplashScreenReactPackage(),
        new RNFirebaseFirestorePackage(),
        new RNFirebaseMessagingPackage(),
        new RNFirebaseNotificationsPackage(),
        new ReactNativeLocalizationPackage()
      );
      return packages;
    }

    @Override
    protected String getJSMainModuleName() {
      return "index";
    }
  };

  @Override
  public ReactNativeHost getReactNativeHost() {
    return mReactNativeHost;
  }

  @Override
  public void onCreate() {
    super.onCreate();
    AppEventsLogger.activateApp(this);
    SoLoader.init(this, /* native exopackage */ false);
  }
}

Any ideas? This is pretty urgent and I don't know what else to do.

@wmonecke wmonecke added the Bug label Aug 2, 2019
@react-native-bot react-native-bot added the Platform: Android Android applications. label Aug 2, 2019
@taschik
Copy link

taschik commented Aug 2, 2019

You need to install jetifier and run it as npm post install script to convert the symbols to use androidx packages. This fixes your issue.

"postinstall": "npx jetify"

@HarshitMadhav
Copy link

@taschik Yes! exactly! Jetifier will upgrade the dependencies from android to androidx

1- First install jetifier using this command npm install --save-dev jetifier or yarn add -D jetifier
2- Edit your package.json and add a postinstall script: "postinstall": "npx jetify"
3- Run npm install

Every time you run npm install, the jetifier will convert the dependencies for androidx support.
If you dont want to use androidx, you can disable it using

android.useAndroidX=false
android.enableJetifier=false

@wmonecke
Copy link
Author

wmonecke commented Aug 3, 2019

I have already done npx jetify. Deleted node_modulesand reinstalled them with the script postinstall: npx jetify in my package.json. I think this might be something else?

  1. I did npx jetify
  2. Got the following message npx jetify Jetifier found 1623 file(s) to forward-jetify. Using 8 workers...
  3. cd android && ./gradlew assembleRelease
  4. Got the same error again:
> Task :app:compileReleaseJavaWithJavac FAILED
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:5: error: package android.support.multidex does not exist
import android.support.multidex.MultiDexApplication;
                               ^
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:7: error: cannot find symbol
import com.facebook.react.PackageList;
                         ^
  symbol:   class PackageList
  location: package com.facebook.react
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:41: error: cannot find symbol
public class MainApplication extends MultiDexApplication implements ReactApplication {
                                     ^
  symbol: class MultiDexApplication
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/SplashActivity.java:5: error: package android.support.v7.app does not exist
import android.support.v7.app.AppCompatActivity;
                             ^
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/SplashActivity.java:7: error: cannot find symbol
public class SplashActivity extends AppCompatActivity {
                                    ^
  symbol: class AppCompatActivity
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:43: error: incompatible types: MainApplication cannot be converted to Application
  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
                                                                       ^
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:52: error: cannot find symbol
      List<ReactPackage> packages = new PackageList(this).getPackages();
                                        ^
  symbol: class PackageList
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:54: error: no suitable method found for add(SvgPackage,RNFSPackage,RNDeviceInfo,PickerPackage,RNSentryPackage,RNLocationPackage,ReactVideoPackage,RNFirebasePackage,RNFetchBlobPackage,VectorIconsPackage,RNGooglePlacesPackage,RNFirebaseAuthPackage,LinearGradientPackage,RNGoogleSigninPackage,RNFirebaseAdMobPackage,SplashScreenReactPackage,RNFirebaseFirestorePackage,RNFirebaseMessagingPackage,RNFirebaseNotificationsPackage,ReactNativeLocalizationPackage)
      packages.add(
              ^
    method Collection.add(ReactPackage) is not applicable
      (actual and formal argument lists differ in length)
    method List.add(ReactPackage) is not applicable
      (actual and formal argument lists differ in length)
    method List.add(int,ReactPackage) is not applicable
      (actual and formal argument lists differ in length)
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:43: error: cannot find symbol
  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
                                                   ^
  symbol: constructor (MainApplication)
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:90: error: method does not override or implement a method from a supertype
  @Override
  ^
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:92: error: cannot find symbol
    super.onCreate();
    ^
  symbol:   variable super
  location: class MainApplication
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:93: error: cannot find symbol
    AppEventsLogger.activateApp(this);
    ^
  symbol:   variable AppEventsLogger
  location: class MainApplication
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:94: error: no suitable method found for init(MainApplication,boolean)
    SoLoader.init(this, /* native exopackage */ false);
            ^
    method SoLoader.init(Context,int) is not applicable
      (argument mismatch; MainApplication cannot be converted to Context)
    method SoLoader.init(Context,boolean) is not applicable
      (argument mismatch; MainApplication cannot be converted to Context)
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainActivity.java:13: error: cannot find symbol
        MainApplication.getCallbackManager().onActivityResult(requestCode, resultCode, data);
                       ^
  symbol:   method getCallbackManager()
  location: class MainApplication
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/SplashActivity.java:8: error: method does not override or implement a method from a supertype
  @Override
  ^
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/SplashActivity.java:10: error: cannot find symbol
    super.onCreate(savedInstanceState);
    ^
  symbol:   variable super
  location: class SplashActivity
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/SplashActivity.java:12: error: no suitable constructor found for Intent(SplashActivity,Class<MainActivity>)
    Intent intent = new Intent(this, MainActivity.class);
                    ^
    constructor Intent.Intent(String,Uri) is not applicable
      (argument mismatch; SplashActivity cannot be converted to String)
    constructor Intent.Intent(Context,Class<?>) is not applicable
      (argument mismatch; SplashActivity cannot be converted to Context)
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/SplashActivity.java:13: error: cannot find symbol
    startActivity(intent);
    ^
  symbol:   method startActivity(Intent)
  location: class SplashActivity
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/SplashActivity.java:14: error: cannot find symbol
    finish();
    ^
  symbol:   method finish()
  location: class SplashActivity
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
19 errors

I want to use AndroidX and I want to enable Hermes.

It seems that it can't find Android libraries and not 3rd party dependencies.

Maybe this error is related? #22033 (comment)

@javadi69
Copy link

javadi69 commented Aug 4, 2019

@wmonecke For me these two changes did the job.

  1. in app/build.gradle replace implementation 'com.android.support:multidex:1.0.3' with implementation 'androidx.multidex:multidex:2.0.1'
  2. in MainApplication.java replace import android.support.multidex.MultiDexApplication; with import androidx.multidex.MultiDexApplication;

@wmonecke
Copy link
Author

wmonecke commented Aug 4, 2019

Hi @javadi69! This only solved the MultiDex issues. All other problems are still present.

@javadi69
Copy link

javadi69 commented Aug 4, 2019

@wmonecke did you try android studio androidx migration tool? (Refactor > Migrate to AndroidX)
if not please do that first. then some packages and files need to migrate manually.
One of those are SplashActivity.java: replace import android.support.v7.app.AppCompatActivity; with import androidx.appcompat.app.AppCompatActivity;

Also please use Upgrade helper for necessary changes: https://react-native-community.github.io/upgrade-helper/

@wmonecke
Copy link
Author

wmonecke commented Aug 4, 2019

@javadi69 Thanks! The error reduced itself to this now:

> Task :app:compileReleaseJavaWithJavac FAILED
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:8: error: cannot find symbol
import com.facebook.react.PackageList;
                         ^
  symbol:   class PackageList
  location: package com.facebook.react
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:51: error: cannot find symbol
      List<ReactPackage> packages = new PackageList(this).getPackages();
                                        ^
  symbol: class PackageList
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:53: error: no suitable method found for add(SvgPackage,RNFSPackage,RNDeviceInfo,PickerPackage,RNLocationPackage,ReactVideoPackage,RNFirebasePackage,RNFetchBlobPackage,VectorIconsPackage,RNGooglePlacesPackage,RNFirebaseAuthPackage,LinearGradientPackage,RNGoogleSigninPackage,RNFirebaseAdMobPackage,SplashScreenReactPackage,RNFirebaseFirestorePackage,RNFirebaseMessagingPackage,RNFirebaseNotificationsPackage,ReactNativeLocalizationPackage)
      packages.add(
              ^
    method Collection.add(ReactPackage) is not applicable
      (actual and formal argument lists differ in length)
    method List.add(ReactPackage) is not applicable
      (actual and formal argument lists differ in length)
    method List.add(int,ReactPackage) is not applicable
      (actual and formal argument lists differ in length)
3 errors

FAILURE: Build failed with an exception.

I don't understand how this can be an error import com.facebook.react.PackageList;

@gdoudeng
Copy link

gdoudeng commented Aug 5, 2019

@ javadi69 谢谢!错误现在减少到这个:

> Task :app:compileReleaseJavaWithJavac FAILED
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:8: error: cannot find symbol
import com.facebook.react.PackageList;
                         ^
  symbol:   class PackageList
  location: package com.facebook.react
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:51: error: cannot find symbol
      List<ReactPackage> packages = new PackageList(this).getPackages();
                                        ^
  symbol: class PackageList
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/android/app/src/main/java/com/moodpixel/MainApplication.java:53: error: no suitable method found for add(SvgPackage,RNFSPackage,RNDeviceInfo,PickerPackage,RNLocationPackage,ReactVideoPackage,RNFirebasePackage,RNFetchBlobPackage,VectorIconsPackage,RNGooglePlacesPackage,RNFirebaseAuthPackage,LinearGradientPackage,RNGoogleSigninPackage,RNFirebaseAdMobPackage,SplashScreenReactPackage,RNFirebaseFirestorePackage,RNFirebaseMessagingPackage,RNFirebaseNotificationsPackage,ReactNativeLocalizationPackage)
      packages.add(
              ^
    method Collection.add(ReactPackage) is not applicable
      (actual and formal argument lists differ in length)
    method List.add(ReactPackage) is not applicable
      (actual and formal argument lists differ in length)
    method List.add(int,ReactPackage) is not applicable
      (actual and formal argument lists differ in length)
3 errors

FAILURE: Build failed with an exception.

我不明白这是怎么一个错误import com.facebook.react.PackageList;

First perform gradlew clean, then execute gradlew assembleRelease

@wmonecke
Copy link
Author

wmonecke commented Aug 5, 2019

@gdoudeng I have deleted node_modules, reinstalled them, done ./gradlew clean several times and nothing. I don't understand what is going.

@ntelkedzhiev
Copy link

Same happens to me

@HarshitMadhav
Copy link

run gradlew dependencies command in the android folder to check out the com.androidx and com.android dependencies and then try to resolve those.

@ntelkedzhiev
Copy link

This solved the PackageList error: https://stackoverflow.com/a/56972260.

@markgoodyear
Copy link

I came accross this same issue too, and listed all the packages like @wmonecke did:

packages.add(
  new PackageOne(),
  new PackageTwo(),
  new PacakgeThree()
);

However, you need to add each package like this:

packages.add(new PackageOne());
packages.add(new PackageTwo());
packages.add(new PacakgeThree());

Hopefully this helps.

@Eramirez06
Copy link

I came accross this same issue too, and listed all the packages like @wmonecke did:

packages.add(
  new PackageOne(),
  new PackageTwo(),
  new PacakgeThree()
);

However, you need to add each package like this:

packages.add(new PackageOne());
packages.add(new PackageTwo());
packages.add(new PacakgeThree());

Hopefully this helps.

You save my life bro, thanks

@stale
Copy link

stale bot commented Jan 8, 2020

Hey there, it looks like there has been no activity on this issue recently. Has the issue been fixed, or does it still require the community's attention? This issue may be closed if no further activity occurs. You may also label this issue as a "Discussion" or add it to the "Backlog" and I will leave it open. Thank you for your contributions.

@stale stale bot added the Stale There has been a lack of activity on this issue and it may be closed soon. label Jan 8, 2020
@stale
Copy link

stale bot commented Jan 15, 2020

Closing this issue after a prolonged period of inactivity. If this issue is still present in the latest release, please feel free to create a new issue with up-to-date information.

@stale stale bot closed this as completed Jan 15, 2020
@facebook facebook locked as resolved and limited conversation to collaborators Jan 16, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Bug Platform: Android Android applications. Stale There has been a lack of activity on this issue and it may be closed soon.
Projects
None yet
Development

No branches or pull requests

9 participants