I’ve been developing * with Cordova (aka Phonegap) for Android for over a year now and have been trying to make my applications available for use in Bean jelly, but I get the following error:
XMLHttpRequest cannot load http://127.0.0.1:40582/[somerandomstring]. Origin null is not allowed by Access-Control-Allow-Origin. at null:1
(and similar errors for any subsequent ajax requesting the use of localhost or a file: //) Just for testing, I give access to everything in the config.xml file in the Access-Control-Allow-Origin section
<access origin="*"/> <access origin="http://127.0.0.1*"/>
In my research, I found that the error was related to the settings change that Google made with Android Jelly Bean. Here is what I found: From: https://git-wip-us.apache.org/repos/asf?p=incubator-cordova-android.git;a=commitdiff;h=07439ff9
- This is from org.apache.cordova.CordovaWebView
- This is also from org.apache.cordova.CordovaWebView
// Wrapping these functions in their own class prevents warnings in adb like: // VFY: unable to resolve virtual method 285: Landroid/webkit/WebSettings;.setAllowUniversalAccessFromFileURLs @TargetApi(16) private static class Level16Apis { static void enableUniversalAccess(WebSettings settings) { settings.setAllowUniversalAccessFromFileURLs(true); } }
It’s good that Cordoba tried to get around the changes, but, unfortunately, this does not work ...
In these SO threads here and here, I found a general solution by simply changing the setting as follows:
if(android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { super.appView.getSettings().setAllowUniversalAccessFromFileURLs(true); }
Now I get the following warning:
Call requires API level 16 (current min is 8) android.webkit.WebSettings
Here is what I have for api in AndroidManifest.xml
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" />
Why do I need to change minSdkVersion to 16, and not follow my targetSdkVersion, which is 16?
Thoughts?
Notes . I am currently using Cordova 2.0, Eclipse Indigo SR2 (all current updates), Android SDK (all updates currently), on Windows 7 Home (all current updates), Java 7 7 update.