Skip to content
This repository was archived by the owner on Apr 3, 2020. It is now read-only.
This repository was archived by the owner on Apr 3, 2020. It is now read-only.

Crosswalk with Cordova-Android 7.0 -> Failed to install 'cordova-plugin-crosswalk-webview': Error: Unhandled "error" event. (Parsing platforms/android/res/xml/config.xml failed) #188

Closed
@Bubelbub

Description

@Bubelbub

Hey guys,

I'm getting this error since few days.

Discovered plugin "cordova-plugin-crosswalk-webview" in config.xml. Adding it to the project
Installing "cordova-plugin-crosswalk-webview" for android
Subproject Path: CordovaLib
Subproject Path: app
		After much discussion and analysis of the market, we have decided to discontinue support for Android 4.0 (ICS) in Crosswalk starting with version 20.
		So the minSdkVersion of Cordova project is configured to 16 by default.
	
Failed to install 'cordova-plugin-crosswalk-webview': Error: Unhandled "error" event. (Parsing /bitrise/src/platforms/android/res/xml/config.xml failed)
	at EventEmitter.emit (events.js:186:19)
	at EventEmitter.module.exports.emit (/usr/lib/node_modules/cordova/node_modules/cordova-common/src/events.js:71:17)
	at new ConfigParser (/usr/lib/node_modules/cordova/node_modules/cordova-common/src/ConfigParser/ConfigParser.js:34:16)
	at new module.exports (/bitrise/src/plugins/cordova-plugin-crosswalk-webview/hooks/update_config.js:37:25)
	at module.exports (/bitrise/src/plugins/cordova-plugin-crosswalk-webview/hooks/after_plugin_install/000-shared_mode_special.js:8:24)
	at runScriptViaModuleLoader (/usr/lib/node_modules/cordova/node_modules/cordova-lib/src/hooks/HooksRunner.js:188:18)
	at runScript (/usr/lib/node_modules/cordova/node_modules/cordova-lib/src/hooks/HooksRunner.js:164:16)
	at /usr/lib/node_modules/cordova/node_modules/cordova-lib/src/hooks/HooksRunner.js:132:20
	at _fulfilled (/usr/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:787:54)
	at self.promiseDispatch.done (/usr/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:816:30)
Failed to restore plugin "cordova-plugin-crosswalk-webview" from config.xml. You might need to try adding it again. Error: Error: Unhandled "error" event. (Parsing /bitrise/src/platforms/android/res/xml/config.xml failed)

I'm using newest Android Cordova 7.0.0 and also tried with 6.3.

Do you know why this fails?

If I install this on my local computer (not on linux build machine) then everything works fine.

Activity

Bubelbub

Bubelbub commented on Dec 28, 2017

@Bubelbub
Author

I fout out that the path is wrong.

Thats the /bitrise/src/platforms/android folder.

2017-12-28 01_41_47

And here is the config.xml in res folder.

bitrise/src/platforms/android/app/src/main/res/xml/config.xml

Do you know why? Thanks :-)

mcfarljw

mcfarljw commented on Dec 28, 2017

@mcfarljw

They changed the directory structure of cordova 7.0 so it probably won't work. It should be working with cordova 6.3.0 though. Make sure you clear everything before downgrading.

Bubelbub

Bubelbub commented on Dec 28, 2017

@Bubelbub
Author

Yes @mcfarljw you're right. I tried with cordova 7.0 and it works.

So I will change the title of this issue so that it can maybe be fixed.
Normally I would say you not need crosswalk on newer android versions but the problem is that a lot of users using android with sdk 16, 17 or 18.
I mean currently we have version 28 but a lot of devices not support this.

Don't know what the best solution is right now - except stay on 6.3.0.
Hopefully there is not a big change to 7.0.

Maybe I start a new crosswalk branch for v7.

changed the title [-]Failed to install 'cordova-plugin-crosswalk-webview': Error: Unhandled "error" event. (Parsing platforms/android/res/xml/config.xml failed)[/-] [+]Crosswalk with Cordova-Android 7.0 -> Failed to install 'cordova-plugin-crosswalk-webview': Error: Unhandled "error" event. (Parsing platforms/android/res/xml/config.xml failed)[/+] on Dec 28, 2017
philoskim

philoskim commented on Dec 29, 2017

@philoskim

My workaround is as follows.

$ cordova -v
8.0.0
  1. Modify the line 33--34 in your_project/plugins/cordova-plugin-crosswalk-webview/hooks/update_config.js
//      platformConfigurationFile = path.join(androidPlatformDir,
//          'res', 'xml', 'config.xml'),
        platformConfigurationFile = path.join(androidPlatformDir,
            'app', 'src', 'main', 'res', 'xml', 'config.xml'),
  1. Modify the line 32 in your_project/platforms/cordova-plugin-crosswalk-webview/*-xwalk.gradle
// def xml = file("res/xml/config.xml").getText()
def xml = file("src/main/res/xml/config.xml").getText()
  1. After the modifications, I succeeded in $ cordova build android.

I hope this solution will be helpful.

jevian-ma

jevian-ma commented on Dec 31, 2017

@jevian-ma

@philoskim Thank you, philoskim, you help me.

Marcophono2

Marcophono2 commented on Jan 2, 2018

@Marcophono2

@philoskim: Perfect! :-)

periplox

periplox commented on Jan 4, 2018

@periplox

Thanks @philoskim

hiroyui

hiroyui commented on Jan 5, 2018

@hiroyui

Hi There
i develope game for android and im new in this field, i have same trouble with @Bubelbub and i want to applied the @philoskim way, but the problem is when i open the js file in notepad it looks messy i can't decide which is line 33--34 or other, can you help me how i can modify it and know which correct line,
thanks a lot

periplox

periplox commented on Jan 5, 2018

@periplox

@hiroyui Why don't you try using a code editor like Sublime or VS Code? It'll help you to find the lines more easily. Anyhow, if you decide to stick with notepad you could search for the values (Ctrl + F), but then you need to be very careful and save a backup of the JS file before, in case something goes wrong.

hiroyui

hiroyui commented on Jan 5, 2018

@hiroyui

@periplox thanks i'll try it

Marcophono2

Marcophono2 commented on Jan 5, 2018

@Marcophono2

@hiroyui: Periplox is right. You just need a "better" text editor. That will let you see everything much more clear. There are a lot of text editors out there. Some are very professional for regarding language depending expressions but also very overload. I for example use Emeditor since years. That one also regards iE. Javascript and PHP programming styles but is easy to handle. (what a text editor should be of course ;)

Best regards
Marc

joshstrange

joshstrange commented on Jan 8, 2018

@joshstrange

I committed @philoskim's changes here https://github.com/corrisoft/cordova-plugin-crosswalk-webview

You can use it by running:

cordova plugin rm cordova-plugin-crosswalk-webview
cordova plugin add https://github.com/corrisoft/cordova-plugin-crosswalk-webview

Note you may need to copy over any config you may have set in package.json/config.xml such as XWALK_VERSION/XWALK_LITEVERSION/etc

Normally I would not suggest using a fork of a plugin like this but since Intel has dropped support for Crosswalk and I don't expect and new releases I think this is a decent approach.

PS: For those wondering why not just make @philoskim's changes locally: We need to build our apps on a CI server which is headless and needs to work without human intervention. There is a possibility of using some kind of cordova hook to make the above changes but this was faster and easier so I took this route.

12 remaining items

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Participants

      @Bubelbub@joshstrange@baleboy@ElNinjaGaiden@mcfarljw

      Issue actions

        Crosswalk with Cordova-Android 7.0 -> Failed to install 'cordova-plugin-crosswalk-webview': Error: Unhandled "error" event. (Parsing platforms/android/res/xml/config.xml failed) · Issue #188 · crosswalk-project/cordova-plugin-crosswalk-webview