[Phonegap+Sencha Touch] 移动开发18 Sencha Touch项目通过phonegap打包后的程序名字的问题

时间:2023-03-09 05:48:26
[Phonegap+Sencha Touch] 移动开发18 Sencha Touch项目通过phonegap打包后的程序名字的问题

之前说过

sencha phonegap init com.pushsoft.myapp MyApp

之后打包的程序安装包apk的名字是“MyApp.apk”,显示在手机桌面上的程序名称(图标以下的文字)也是"MyApp"

假设要换成其它名字,改动 MyApp\config.xml 文件,把顶部"<name>MyApp</name>"中间MyApp的改成须要的名字。
注意假设xml内容有中文,要改成utf-8编码,注意是文本文件的编码,不是顶上的"<?xml version='1.0' encoding='utf-8'?>"。
推荐用Notepad++更改文本文件的编码。

这里有个问题,就是假设改成了全中文名称,比方“我的程序”,会导致sencha app build native失败(phonegap local build android也是失败),例如以下图:

[Phonegap+Sencha Touch] 移动开发18 Sencha Touch项目通过phonegap打包后的程序名字的问题

图一:项目名称乱码

[Phonegap+Sencha Touch] 移动开发18 Sencha Touch项目通过phonegap打包后的程序名字的问题

图二:编译失败

[Phonegap+Sencha Touch] 移动开发18 Sencha Touch项目通过phonegap打包后的程序名字的问题

图三:生成的安卓项目中的java文件没有文件名称

[Phonegap+Sencha Touch] 移动开发18 Sencha Touch项目通过phonegap打包后的程序名字的问题

图四:同图二,java文件的内容,没有类名导致编译失败

原因是java文件类名来自config.xml文件中的"<name>我的程序</name>"中间的名字,cordova或phonegap对中文的支持不太好,导致这样的情况。

解决的方法例如以下:

打开C:\Users\username\.cordova\lib\android\cordova\3.4.0\bin\lib\create.js,找到以下红框的内容

[Phonegap+Sencha Touch] 移动开发18 Sencha Touch项目通过phonegap打包后的程序名字的问题

改成以下的样子:

[Phonegap+Sencha Touch] 移动开发18 Sencha Touch项目通过phonegap打包后的程序名字的问题

这个修正的作用是:假设config.xml中的名字是英文的,就用这个英文的名字;假设被改成了全中文,就用"CordovaExample"这个名字。

之后打包的程序安装包apk的名字是“CordovaExample.apk”,显示在手机桌面上的程序名称(图标以下的文字)是"我的程序"

假设你认为apk的这个名字“CordovaExample.apk”不太好,而想要换个文件名称,比方想把包名(如"com.pushsoft.myapp")的最后一部分作为文件名称(如"Myapp"),能够这样改:

[Phonegap+Sencha Touch] 移动开发18 Sencha Touch项目通过phonegap打包后的程序名字的问题