Eclipse利用PhoneGap打包Sencha Touch2项目

花了一天半时间总算打包成功,开始之前我不得不吐槽一下网上的很多技术贴,能不能照顾一下刚入门菜鸟的感受,写的太不负责,敷衍了事,你觉得会有高手去看你们写的吗,必然都是我们这些涉世尚浅之辈,就那么几行,能看懂才怪,上上上周去参加cocoachia的开发者会,你看别人做的,被菜鸟吐槽一星期没学会打包,立马改正,力求做到仨按钮摆界面上,分别是“生成ios安装文件”,“生成android安装文件”,“生成windows phone安装文件”,一键打包!什么叫责任!什么叫专业!闲言碎语不要讲,第一步得交代一下时间地点人物吧?你看我:

部署环境:

1. PhoneGap2.9.0(下2.9.1的别怪我没提醒,不好使!)

2.Sencha Touch2.3.1

3,Sencha cmd4.0.2

4.请确保你的项目是严格按照Sencha Touch2的MVC结构编写的,否则我不会。

最终效果图:

步骤很简单,

1)首先Eclipse的android插件都装好了吧?新建一个FirstAndroid的项目,能项目右键->Run As->Android Application在模拟器上完美跑起来了吧?OK。

2)  假设你的PhoneGap装在了F:\install\phonegap-2.9.0,那么将F:\install\phonegap-2.9.0\lib\android下的cordova-2.9.0.jar拷贝到FirstAndroid项目的libs目录下,并添加到build path。

3)将F:\install\phonegap-2.9.0\lib\android下的xml文件夹整个拷贝到FirstAndroid项目的res目录下.

4) 点开src中的MainActivity.java, 将:

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

注释掉,改成:

import org.apache.cordova.*;

public class MainActivity extends DroidGap
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        // Set by <content src="index.html" /> in config.xml
        super.loadUrl(Config.getStartUrl());
        //super.loadUrl("file:///android_asset/www/index.html")
    }
}


5)把AndroidManifest.xml改成:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.sexhit.sexhitandroid"
    android:versionCode="1"
    android:versionName="1.0" >

     <supports-screens
        android:largeScreens="true"
        android:normalScreens="true"
        android:smallScreens="true"
        android:xlargeScreens="true"
        android:resizeable="true"
        android:anyDensity="true"
     />
     
     <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.RECORD_VIDEO"/>
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />   
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />   
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
    
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

6)在你的Sencha touch项目根目录下运行sencha app build package.(这一步最容易出错,幸好sencha cmd的错误信息提供的还行,如果出错,请找sencha 技术贴),成功以后会在<Sencha touch项目根目录>\build\package目录下生成和你项目同名的一个文件夹,假设名字叫MySenchaProject,这里面的文件就是打包后的项目啦,洗干净留着备用。

7)在FirstAndroid项目的assets目录下新建一个文件夹www.(为啥叫这个我也不知道).

8) 把刚才洗净备用的MySenchaProject目录下的内容全部拷贝到www目录下,注意拷贝的是里面的内容,不是MySenchaProject文件夹,拷贝完成后观察你的xxxx.html名字是不是和res\xml\config.xml里面的

<content src="index.html" />
一样,不一样修改之。

9)颤抖吧骚年!项目右键->Run As->Android Application吧!

阅读更多
个人分类: Web
上一篇Sencha touch中的scope原理
下一篇用程序证明c的getchar并未将回车放入缓存,放进去的是换行!
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭