Linux xml2po fails
#1
Hello,

I wanted to migrate my strings.xml to new *.po format using this tool:
https://github.com/alanwww1/xbmc-xml2po

I self compiled the sources on Ubuntu 13.10 (saucy) amd64

This is the error I got in runtime:
Code:
./xbmc-xml2po -s ../xbmcNordishAddons/service.script.call-notifications

XBMC-XML2PO v0.96 by Team XBMC
terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_S_construct null not valid
[1]    6486 abort      ./xbmc-xml2po -s ../xbmcNordishAddons/service.script.call-notifications

Any help?

Thanks in advance, Nordish
Reply
#2
Same error here. Same setup.

Interestingly, I tried a version I compiled back in march that was working then on a different Ubuntu version and get the same error.
Reply
#3
Just got it to work.

The README says:

Code:
The source directory for addons should be where the addon.xml file exists
For core language file, use the main xbmc source tree as a directory

But I tried {addonpath}/resources/language and it worked.
Reply
#4
Hey ruuk,

yes that works! Thanks for the pointer.

So the docs are wrong and the program should check for file existence before opening a file handle on that (wrong) folder..
?!

Anyone is able to fix this? I already filed a issue on github: https://github.com/alanwww1/xbmc-xml2po/issues/2
Reply
#5
It worked also for me until I reboot !?

Is it still working for you guys ?

Wrong Arguments given !
Usage: xbmc-xml2po -s <sourcedirectoryname>
parameter -s <name> for source root directory

The source directory for addons should be where the addon.xml file existsFor core language file, use the main xbmc source tree as a directory


I checked my path using cd command, and it is good.

>> xbmc-xml2po ~/.xbmc/addons/[my plugin]/resources/language

I also tried bellow with no luck.

>> >> xbmc-xml2po ~/.xbmc/addons/[my plugin]

I did re-make the bin file but same error.

What am I missing ?

Ubuntu 12.04 64 bits Frodo
Reply
#6
I found it.

I cancelled the file name validation in main() function of the application in xbmc-xml2po.cpp file, and I added the pSourceDirectory = argv[1] after the cancelled block.

I have an underscore in the name of my plugin (dev version), its probably why it didn't pass the validation, but I still don't understand why it did work initially !?

// Basic syntax checking for "-x name" format
/*while ((argc > 2) && (argv[1][0] == '-') && (argv[1][1] != '\x00') && (argv[1][2] == '\x00') &&
(argv[2][0] != '\x00') && (argv[2][0] != '-'))
{
switch (argv[1][1])
{
case 's':
--argc; ++argv;
pSourceDirectory = argv[1];
break;
}
++argv; --argc;
}

if (pSourceDirectory == NULL)
{
printf("\nWrong Arguments given !\n");
PrintUsage();
return 1;
}*/

pSourceDirectory = argv[1];
Reply

Logout Mark Read Team Forum Stats Members Help
xml2po fails0