My App recently started crashing in Android 9. A quick investigation revealed Google made a change to prevent multiple processes from sharing a WebView data directory with the default behavior being throwing an exception. This effectively put my App into a launch / crash loop – thanks Google.
To solve the problem I sub-classed the MultiDexApplication and added this code:
import android.app.Application;
import android.os.Build;
import android.webkit.WebView;
import androidx.multidex.MultiDexApplication;
public class MyApplication extends MultiDexApplication
{
@Override
public void onCreate()
{
super.onCreate();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P)
{
try
{
WebView.setDataDirectorySuffix(Application.getProcessName());
}
catch (Exception ignored)
{
}
}
}
}