Try other constructors besides first
Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/df05f3a3 Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/df05f3a3 Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/df05f3a3 Branch: refs/heads/pluggable_webview Commit: df05f3a3c07c0630c3d598409289db7a8f3c87e3 Parents: 8e31ef7 Author: Ian Clelland <[email protected]> Authored: Thu Apr 24 14:58:16 2014 -0400 Committer: Ian Clelland <[email protected]> Committed: Tue Apr 29 22:50:12 2014 -0400 ---------------------------------------------------------------------- .../src/org/apache/cordova/CordovaActivity.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-android/blob/df05f3a3/framework/src/org/apache/cordova/CordovaActivity.java ---------------------------------------------------------------------- diff --git a/framework/src/org/apache/cordova/CordovaActivity.java b/framework/src/org/apache/cordova/CordovaActivity.java index 01eff1c..830332e 100755 --- a/framework/src/org/apache/cordova/CordovaActivity.java +++ b/framework/src/org/apache/cordova/CordovaActivity.java @@ -219,16 +219,18 @@ public class CordovaActivity extends Activity implements CordovaInterface { try { Class webViewClass = Class.forName(r); Constructor<CordovaWebView> [] webViewConstructors = webViewClass.getConstructors(); - - + if(CordovaWebView.class.isAssignableFrom(webViewClass)) { - CordovaWebView webView = (CordovaWebView) webViewConstructors[0].newInstance(this); - return webView; - } - else - { - LOG.e(TAG, "The WebView Engine is NOT a proper WebView, defaulting to system WebView"); + for (Constructor<CordovaWebView> constructor : webViewConstructors) { + try { + CordovaWebView webView = (CordovaWebView) constructor.newInstance(this); + return webView; + } catch (IllegalArgumentException e) { + LOG.d(TAG, "Illegal arguments; trying next constructor."); + } + } } + LOG.e(TAG, "The WebView Engine is NOT a proper WebView, defaulting to system WebView"); } catch (ClassNotFoundException e) { LOG.e(TAG, "The WebView Engine was not found, defaulting to system WebView"); } catch (InstantiationException e) {
