2013-06-03 2 views
1

J'essaie maintenant au port un de mon projet Cocos2d 1.x à l'aide Apportable, obtenir l'erreur suivante sur la scène de la compilation:Apportable portage de l'erreur de projet Cocos2d

 apk = env.BuildAPK(os.path.join(env['VARIANT_DIR'], env['APPLICATION_NAME'], config['APPLICATION_NAME'] + '.apk'), lib, assets + env['LIBRARY_ASSETS']) 
    File "/Users/*user*/.apportable/SDK/lib/scons/engine/SCons/Environment.py", line 223, in __call__ 
    return self.method(*nargs, **kwargs) 
    File "/Users/*user*/.apportable/SDK/site_scons/android/sdk.py", line 1123, in APKBuilder 
    packaged = ResourcesFinalize(env, target=res_apk_path, source=source, assets=assets) 
    File "/Users/*user*/.apportable/SDK/site_scons/android/sdk.py", line 922, in ResourcesFinalize 
    all_assets = RemapAssetList(env, assets) 
    File "/Users/*user*/.apportable/SDK/site_scons/android/sdk.py", line 847, in RemapAssetList 
    (remap, target) = Remap(env, asset, target) 
    File "/Users/*user*/.apportable/SDK/site_scons/android/sdk.py", line 723, in Remap 
    (base, ext) = os.path.splitext(str(source)) 
UnicodeEncodeError: 'ascii' codec can't encode character u'\u0421' in position 58: ordinal not in range(128) 

Est-ce problème SDK ou mon code source est y a-t-il une solution pour le réparer?

+0

Juste une supposition, le nom ou le chemin de votre projet a-t-il des caractères non-ascii? – LearnCocos2D

Répondre

1

Comme LearnCocos2D l'a deviné, Apportable ne gère pas actuellement les fichiers de ressources avec des noms non-ASCII.

Si vous voulez quitter le projet IOS intacte, vous pouvez copier ou lier le fichier de ressources à un nom ASCII et mise à jour configuration.json en conséquence:

Par exemple, sur la section remove_params:

 "assets": [ 
       "Resources/Audio/@#$%\u2122!.wav", 
       ..... 

Et dans la section add_params:

 "assets": [ 
       "apportable/Resources/sonOfA.wav", // link to Resources/Audio/@#$%\u2122!.wav" 

mise à jour, nous sommes aussi maintenant la plate-forme Apportable pour gérer les caractères non-ASCII correctement, donc si vous êtes En lisant ceci plus d'une semaine ou deux dans le futur, la question sera sans objet.

+0

Existe-t-il un moyen de détecter quel fichier est incorrect, il y a environ 500 fichiers où probablement par erreur inséré des symboles non ASCII. S'il est correctement compris, il doit s'agir d'un nom de fichier où est représentée la lettre C. – EnergYzer

+0

Ok, semble trouvé le moyen de trouver le nom de fichier non ASCII, sur MAC navigué à travers Terminal vers le dossier des ressources et la commande exécutée: ls | perl -ne 'print if/[^ [: ascii:]] /' – EnergYzer

+0

Belle trouvaille sur la façon de traquer les noms de fichiers non-ASCII. Une autre option est de jeter un oeil dans le débogueur python. Voir http://stackoverflow.com/questions/1623039/python-debugging-tips –