You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Try to open app in Android 8 with outdated WebView version
Expected behaviour
App should not crash. Since Login flow v2 is active and working, no need to use v1.
Actual behaviour
App is crashing
Android version
Android 8
Device brand and model
Emulator
Stock or custom OS?
Stock
Nextcloud android app version
3.31.0 RC1
Nextcloud server version
30.0.4
Using a reverse proxy?
I don't know
Android logs
E Chromium WebView package does not exist
android.webkit.WebViewFactory$MissingWebViewPackageException: Failed to load WebView provider: No WebView installed
at android.webkit.WebViewFactory.getWebViewContextAndSetProvider(WebViewFactory.java:334)
at android.webkit.WebViewFactory.getProviderClass(WebViewFactory.java:398)
at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:211)
at android.webkit.WebView.getFactory(WebView.java:2467)
at android.webkit.WebView.ensureProviderCreated(WebView.java:2462)
at android.webkit.WebView.setOverScrollMode(WebView.java:2527)
at android.view.View.<init>(View.java:4536)
at android.view.View.<init>(View.java:4668)
at android.view.ViewGroup.<init>(ViewGroup.java:597)
at android.widget.AbsoluteLayout.<init>(AbsoluteLayout.java:55)
at android.webkit.WebView.<init>(WebView.java:636)
at android.webkit.WebView.<init>(WebView.java:581)
at android.webkit.WebView.<init>(WebView.java:564)
at android.webkit.WebView.<init>(WebView.java:551)
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
at android.view.LayoutInflater.createView(LayoutInflater.java:647)
at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:720)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:788)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at com.owncloud.android.databinding.AccountSetupWebviewBinding.inflate(AccountSetupWebviewBinding.java:55)
at com.owncloud.android.databinding.AccountSetupWebviewBinding.inflate(AccountSetupWebviewBinding.java:49)
at com.owncloud.android.authentication.AuthenticatorActivity.onGetServerInfoFinish(AuthenticatorActivity.java:1064)
at com.owncloud.android.authentication.AuthenticatorActivity.onRemoteOperationFinish(AuthenticatorActivity.java:978)
at com.owncloud.android.services.OperationsService.lambda$dispatchResultToOperationListeners$0(OperationsService.java:797)
at com.owncloud.android.services.OperationsService$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
D Shutting down VM
E FATAL EXCEPTION: main
Process: com.nextcloud.client, PID: 3021
android.view.InflateException: Binary XML file line #20: Binary XML file line #20: Error inflating class android.webkit.WebView
Caused by: android.view.InflateException: Binary XML file line #20: Error inflating class android.webkit.WebView
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
at android.view.LayoutInflater.createView(LayoutInflater.java:647)
at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:720)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:788)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at com.owncloud.android.databinding.AccountSetupWebviewBinding.inflate(AccountSetupWebviewBinding.java:55)
at com.owncloud.android.databinding.AccountSetupWebviewBinding.inflate(AccountSetupWebviewBinding.java:49)
at com.owncloud.android.authentication.AuthenticatorActivity.onGetServerInfoFinish(AuthenticatorActivity.java:1064)
at com.owncloud.android.authentication.AuthenticatorActivity.onRemoteOperationFinish(AuthenticatorActivity.java:978)
at com.owncloud.android.services.OperationsService.lambda$dispatchResultToOperationListeners$0(OperationsService.java:797)
at com.owncloud.android.services.OperationsService$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Caused by: android.util.AndroidRuntimeException: android.webkit.WebViewFactory$MissingWebViewPackageException: Failed to load WebView provider: No WebView installed
at android.webkit.WebViewFactory.getProviderClass(WebViewFactory.java:438)
at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:211)
at android.webkit.WebView.getFactory(WebView.java:2467)
at android.webkit.WebView.ensureProviderCreated(WebView.java:2462)
at android.webkit.WebView.setOverScrollMode(WebView.java:2527)
at android.view.View.<init>(View.java:4536)
at android.view.View.<init>(View.java:4668)
at android.view.ViewGroup.<init>(ViewGroup.java:597)
at android.widget.AbsoluteLayout.<init>(AbsoluteLayout.java:55)
at android.webkit.WebView.<init>(WebView.java:636)
at android.webkit.WebView.<init>(WebView.java:581)
at android.webkit.WebView.<init>(WebView.java:564)
at android.webkit.WebView.<init>(WebView.java:551)
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
at android.view.LayoutInflater.createView(LayoutInflater.java:647)
at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:720)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:788)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at com.owncloud.android.databinding.AccountSetupWebviewBinding.inflate(AccountSetupWebviewBinding.java:55)
at com.owncloud.android.databinding.AccountSetupWebviewBinding.inflate(AccountSetupWebviewBinding.java:49)
at com.owncloud.android.authentication.AuthenticatorActivity.onGetServerInfoFinish(AuthenticatorActivity.java:1064)
at com.owncloud.android.authentication.AuthenticatorActivity.onRemoteOperationFinish(AuthenticatorActivity.java:978)
at com.owncloud.android.services.OperationsService.lambda$dispatchResultToOperationListeners$0(OperationsService.java:797)
at com.owncloud.android.services.OperationsService$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Caused by: android.webkit.WebViewFactory$MissingWebViewPackageException: Failed to load WebView provider: No WebView installed
at android.webkit.WebViewFactory.getWebViewContextAndSetProvider(WebViewFactory.java:334)
at android.webkit.WebViewFactory.getProviderClass(WebViewFactory.java:398)
at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:211)
at android.webkit.WebView.getFactory(WebView.java:2467)
at android.webkit.WebView.ensureProviderCreated(WebView.java:2462)
at android.webkit.WebView.setOverScrollMode(WebView.java:2527)
at android.view.View.<init>(View.java:4536)
at android.view.View.<init>(View.java:4668)
at android.view.ViewGroup.<init>(ViewGroup.java:597)
at android.widget.AbsoluteLayout.<init>(AbsoluteLayout.java:55)
at android.webkit.WebView.<init>(WebView.java:636)
at android.webkit.WebView.<init>(WebView.java:581)
at android.webkit.WebView.<init>(WebView.java:564)
at android.webkit.WebView.<init>(WebView.java:551)
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
at android.view.LayoutInflater.createView(LayoutInflater.java:647)
at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:720)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:788)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at com.owncloud.android.databinding.AccountSetupWebviewBinding.inflate(AccountSetupWebviewBinding.java:55)
at com.owncloud.android.databinding.AccountSetupWebviewBinding.inflate(AccountSetupWebviewBinding.java:49)
at com.owncloud.android.authentication.AuthenticatorActivity.onGetServerInfoFinish(AuthenticatorActivity.java:1064)
at com.owncloud.android.authentication.AuthenticatorActivity.onRemoteOperationFinish(AuthenticatorActivity.java:978)
at com.owncloud.android.services.OperationsService.lambda$dispatchResultToOperationListeners$0(OperationsService.java:797)
at com.owncloud.android.services.OperationsService$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
E Work [ id=488a6c92-a075-4bb4-939a-4a099d7ea1b7, tags={ com.nextcloud.client.jobs.MediaFoldersDetectionWork,*,name:periodic_media_folder_detection,timestamp:1737649367109,class:MediaFoldersDetectionWork } ] failed because it threw an exception/error
java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=3302, uid=10061 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
at android.os.Parcel.readException(Parcel.java:1943)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
at android.content.ContentProviderProxy.query(ContentProviderNative.java:418)
at android.content.ContentResolver.query(ContentResolver.java:754)
at android.content.ContentResolver.query(ContentResolver.java:704)
at com.owncloud.android.datamodel.ContentResolverHelper.queryResolver(ContentResolverHelper.kt:54)
at com.owncloud.android.datamodel.MediaProvider.getImageFolders(MediaProvider.java:71)
at com.nextcloud.client.jobs.MediaFoldersDetectionWork.doWork(MediaFoldersDetectionWork.kt:83)
at androidx.work.Worker$startWork$1.invoke(Worker.kt:64)
at androidx.work.Worker$startWork$1.invoke(Worker.kt:64)
at androidx.work.WorkerKt.future$lambda$2$lambda$1(Worker.kt:100)
at androidx.work.WorkerKt.$r8$lambda$06LNzu7McnKR6G06fSbfQ2BCegc(Unknown Source:0)
at androidx.work.WorkerKt$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
E Work [ id=56b53910-216c-49ae-995b-62364e808600, tags={ com.nextcloud.client.jobs.MediaFoldersDetectionWork,*,name:immediate_media_folder_detection,timestamp:1737649367109,class:MediaFoldersDetectionWork } ] failed because it threw an exception/error
java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=3302, uid=10061 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
at android.os.Parcel.readException(Parcel.java:1943)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
at android.content.ContentProviderProxy.query(ContentProviderNative.java:418)
at android.content.ContentResolver.query(ContentResolver.java:754)
at android.content.ContentResolver.query(ContentResolver.java:704)
at com.owncloud.android.datamodel.ContentResolverHelper.queryResolver(ContentResolverHelper.kt:54)
at com.owncloud.android.datamodel.MediaProvider.getImageFolders(MediaProvider.java:71)
at com.nextcloud.client.jobs.MediaFoldersDetectionWork.doWork(MediaFoldersDetectionWork.kt:83)
at androidx.work.Worker$startWork$1.invoke(Worker.kt:64)
at androidx.work.Worker$startWork$1.invoke(Worker.kt:64)
at androidx.work.WorkerKt.future$lambda$2$lambda$1(Worker.kt:100)
at androidx.work.WorkerKt.$r8$lambda$06LNzu7McnKR6G06fSbfQ2BCegc(Unknown Source:0)
at androidx.work.WorkerKt$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Server error logs
Additional information
No response
The text was updated successfully, but these errors were encountered:
Steps to reproduce
Expected behaviour
App should not crash. Since Login flow v2 is active and working, no need to use v1.
Actual behaviour
App is crashing
Android version
Android 8
Device brand and model
Emulator
Stock or custom OS?
Stock
Nextcloud android app version
3.31.0 RC1
Nextcloud server version
30.0.4
Using a reverse proxy?
I don't know
Android logs
Server error logs
Additional information
No response
The text was updated successfully, but these errors were encountered: