Search code examples
androidcordova

ionic 4 android, android error: cannot find symbol


so this was building with no problem and then I was having problems with building ios so I removed the android platform and added it again. All the plugins and adding of the platform are being added correctly but when running the command $ ionic cordova build android I get a LOT of errors about not being able to find the symbol.

> Task :app:compileDebugJavaWithJavac FAILED
24 actionable tasks: 5 executed, 19 up-to-date
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/cordova/plugins/Diagnostic_Notifications.java:35: error: cannot find symbol
import android.support.v4.app.NotificationManagerCompat;
                             ^
  symbol:   class NotificationManagerCompat
  location: package android.support.v4.app
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/cordova/plugins/Diagnostic.java:57: error: cannot find symbol
import android.support.v4.app.ActivityCompat;
                             ^
  symbol:   class ActivityCompat
  location: package android.support.v4.app
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/cordova/plugins/Diagnostic_External_Storage.java:28: error: cannot find symbol
import android.support.v4.os.EnvironmentCompat;
                            ^
  symbol:   class EnvironmentCompat
  location: package android.support.v4.os
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/nl/xservices/plugins/FileProvider.java:4: error: package android.support.v4.content does not exist
public class FileProvider extends android.support.v4.content.FileProvider {
                                                            ^
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebViewEngine.java:11: error: package android.support.annotation does not exist
import android.support.annotation.RequiresApi;
                                 ^
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebViewEngine.java:121: error: cannot find symbol
    @RequiresApi(Build.VERSION_CODES.LOLLIPOP)
     ^
  symbol:   class RequiresApi
  location: class IonicWebViewEngine.ServerClient
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/cordova/plugins/Diagnostic_Notifications.java:123: error: cannot find symbol
        NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(this.cordova.getActivity().getApplicationContext());
        ^
  symbol:   class NotificationManagerCompat
  location: class Diagnostic_Notifications
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/cordova/plugins/Diagnostic_Notifications.java:123: error: cannot find symbol
        NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(this.cordova.getActivity().getApplicationContext());
                                                              ^
  symbol:   variable NotificationManagerCompat
  location: class Diagnostic_Notifications
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/cordova/plugins/Diagnostic.java:639: error: cannot find symbol
            java.lang.reflect.Method method = ActivityCompat.class.getMethod("shouldShowRequestPermissionRationale", Activity.class, java.lang.String.class);
                                              ^
  symbol:   class ActivityCompat
  location: class Diagnostic
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/cordova/plugins/Diagnostic_External_Storage.java:216: error: cannot find symbol
                    addPath = Environment.MEDIA_MOUNTED.equals(EnvironmentCompat.getStorageState(file));
                                                               ^
  symbol:   variable EnvironmentCompat
  location: class Diagnostic_External_Storage
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/nl/xservices/plugins/SocialSharing.java:169: error: cannot find symbol
                fileUri = FileProvider.getUriForFile(webView.getContext(), cordova.getActivity().getPackageName()+".sharing.provider", new File(fileUri.getPath()));
                                      ^
  symbol:   method getUriForFile(Context,String,File)
  location: class FileProvider
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/nl/xservices/plugins/SocialSharing.java:285: error: cannot find symbol
                fileUri = FileProvider.getUriForFile(webView.getContext(), cordova.getActivity().getPackageName()+".sharing.provider", new File(fileUri.getPath()));
                                      ^
  symbol:   method getUriForFile(Context,String,File)
  location: class FileProvider

I have about 25 of those class errors. Never seen this error before and not a java programmer/used the android studio much.

I have found this SO post that looks like it might help? I just don't know how I go about updating the compiler tools through ionic or through the android studio?

I have also updated my SDK tools

  • Current version: Android Studio 3.5
  • Build number: AI-191.8026.42.35.5791312
  • Android SKD Tools: 26.1.1
  • Android Platform Version: API 29: Android 10.0 (Q) revision 3

$ java --version

 $ java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

Solution

  • Try adding the following code in config.xml under android platform

     <preference name="ANDROID_SUPPORT_V4_VERSION" default="27.+"/>
     <framework src="com.android.support:supportv4:$ANDROID_SUPPORT_V4_VERSION"/>