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

[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也是失败),如下图:


图一:项目名称乱码



图二:编译失败



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



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


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


解决办法如下:

打开C:\Users\用户名\.cordova\lib\android\cordova\3.4.0\bin\lib\create.js,找到下面红框的内容



改成下面的样子:


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


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


如果你觉得apk的这个名字“CordovaExample.apk”不太好,而想要换个文件名,比如想把包名(如"com.pushsoft.myapp")的最后一部分作为文件名("Myapp"),可以这样改: