Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Duplicate
-
cordova-android-7.0.0
-
None
-
None
Description
Android application crashes when there are an error and Cordova handle with it.
Error:
android.os.FileUriExposedException: file:///android_asset/www/error.html exposed beyond app through Intent.getData()
Steps to reproduce:
- Define preference: ErrorUrl on config.xml
- Define on allow-intent:
<allow-intent href="file://*" /> or <allow-intent href="*" />
- Force an error, like an invalid link, to show the error
The application will crash because of the changes introduced on Android N:
Passing file:// URIs outside the package domain may leave the receiver with an unaccessible path. Therefore, attempts to pass a file:// URI trigger a FileUriExposedException. The recommended way to share the content of a private file is using the FileProvider.
Full crash log:
08-14 10:12:23.898 8399-8399/com.outsystems.rd.intentprovider E/AndroidRuntime: FATAL EXCEPTION: main Process: com.outsystems.rd.intentprovider, PID: 8399 android.os.FileUriExposedException: file:///android_asset/www/error.html exposed beyond app through Intent.getData() at android.os.StrictMode.onFileUriExposed(StrictMode.java:1958) at android.net.Uri.checkFileUriExposed(Uri.java:2348) at android.content.Intent.prepareToLeaveProcess(Intent.java:9766) at android.content.Intent.prepareToLeaveProcess(Intent.java:9720) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1609) at android.app.Activity.startActivityForResult(Activity.java:4472) at org.apache.cordova.CordovaActivity.startActivityForResult(CordovaActivity.java:343) at android.app.Activity.startActivityForResult(Activity.java:4430) at android.app.Activity.startActivity(Activity.java:4791) at android.app.Activity.startActivity(Activity.java:4759) at org.apache.cordova.CordovaWebViewImpl.showWebPage(CordovaWebViewImpl.java:239) at org.apache.cordova.CordovaActivity$2.run(CordovaActivity.java:379) at android.app.Activity.runOnUiThread(Activity.java:6152) at org.apache.cordova.CordovaActivity.onReceivedError(CordovaActivity.java:377) at org.apache.cordova.CordovaActivity.onMessage(CordovaActivity.java:465) at org.apache.cordova.CordovaActivity$1.onMessage(CordovaActivity.java:214) at org.apache.cordova.PluginManager.postMessage(PluginManager.java:318) at org.apache.cordova.CordovaWebViewImpl$EngineClient.onReceivedError(CordovaWebViewImpl.java:518) at org.apache.cordova.engine.SystemWebViewClient.onReceivedError(SystemWebViewClient.java:209) at android.webkit.WebViewClient.onReceivedError(WebViewClient.java:267) at com.android.webview.chromium.WebViewContentsClientAdapter.onReceivedError2(WebViewContentsClientAdapter.java:627) at org.chromium.android_webview.AwContentsClientCallbackHelper$MyHandler.handleMessage(AwContentsClientCallbackHelper.java:7357) at android.os.Handler.dispatchMessage(Handler.java:105) 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)
Attachments
Issue Links
- duplicates
-
CB-14259 inAppBrowser not working on android>=7 when target version>=23
- Closed