ionic-team / cordova-plugin-ionic-webview

Web View plugin for Cordova, specialized for Ionic apps.
Apache License 2.0
487 stars 395 forks source link

Error webview ionic plugin android-targetSdkVersion 30 #663

Open ghost opened 2 years ago

ghost commented 2 years ago

We are having a problem generating our android ionic application. We need to update the android-targetSdkVersion to 30 and we want to do it without losing the localstorage data. When we run the command

sudo ionic cordova build android --release --prod

We get this error

> Task :app:compileReleaseJavaWithJavac FAILED
    …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;

    …platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebViewEngine.java:114: error: cannot find symbol
     @RequiresApi(Build.VERSION_CODES.LOLLIPOP)

    symbol:   class RequiresApi
    location: class com.ionicframework.cordova.webview.IonicWebViewEngine.ServerClient
    Note: …/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebViewEngine.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    2 errors

We currently use the plugin plugin-cordova-ionic-webview 2.5.2.

Upgrading to version 5.X of the plugin fixes the bug and allows the build to be generated but causes the localstorage to be deleted so it is discarded. (Upgrading from version 2.X to 3.X or higher deletes the localstorage). We opted to comment out the lines that cause this error. That way it does allow to generate the build but it also deletes the localstorage data, which makes us think that the deletion could also be from updating the android-targetSdkVersion. Given this situation we would like to know if there is a way to update the android-targetSdkVersion to 30 without affecting the localStorage.

Joakiru commented 1 year ago

Delete only what you don't use, then install the following library

https://github.com/dpa99c/cordova-plugin-androidx-adapter

With 'ionic cordova plugin add cordova-plugin-androidx-adapter'.

This saved my project Best regards.