第四步 使用 adt-eclipse 打包 Cordova (3.0及其以上版本) + sencha touch 項目


cordova最新中文api

http://cordova.apache.org/docs/zh/3.1.0/

1、將Cordova 生成的項目導入到adt-eclipse中,如下:

項目結構如下:

 

導入之后可能報以下錯誤:

解決方案:
1.右擊項目選擇 properties
2.選擇android. 設置API 版本為你機子上安裝最新版本,一般我們要下載最新的API,如圖:


3.確定后,菜單欄project,點擊clean即可解決錯誤。

其中config.xml為配置文件,res文件中放置啟動圖片,ico圖標等

config.xml:

 1 <?xml version='1.0' encoding='utf-8'?>
 2 <!-- <widget>元素的 id 屬性提供了應用程式的反向域識別碼和 version 主要/次要/修補程式符號表示其完整版本號碼。 -->
 3 <widget xmlns:cdv="http://cordova.apache.org/ns/1.0"
 4     id="com.example.demo"
 5     version="0.0.1"
 6     xmlns="http://www.w3.org/ns/widgets" >
 7 
 8     <!-- <name>元素指定應用程式的正式名稱,因為它出現在設備的主畫面上和在應用程式商店介面內。 -->
 9     <name>
10 demo
11     </name>
12     <!-- <description>和 <author> 的元素指定的中繼資料和聯繫資訊,可能會出現在應用程式商店清單內。 -->
13     <description>
14            這是一個基於Cordova 3.0 和 sencha touch 2。2.1 的示例項目  
15     </description>
16 
17     <author
18         email="534502520@qq.com"
19         href="http://www.cnblogs.com/mlzs/" >
20             我的聯系方式
21     </author>
22     <!-- 可選的<content>元素在頂級的網絡資產目錄中定義應用程式的起始頁。預設值是index.html的,其中通常出現在一個專案中的頂級萬維網目錄。 -->
23     <content src="index.html" />
24     <!-- <access>元素定義應用程式能夠與進行通信的外部域的集。如上所示的預設值允許它訪問任何伺服器。請參閱域白名單指南的詳細資訊。 -->
25     <access origin="*" />
26     <!-- <preference>標記設置各種選項作為對名稱/值屬性。每個首選項的名稱是不區分大小寫。很多優惠是獨有的特定平台上,如列於此頁的頂部。以下各節詳細介紹了適用於多個平台的首選項。 -->
27     <!-- fullscreen使您可以隱藏在螢幕頂部的狀態列。 -->
28     <preference
29         name="fullscreen"
30         value="true" />
31     <preference
32         name="webviewbounce"
33         value="true" />
34     <!-- 設置為初始螢幕顯示的圖像。如果您的圖像名稱為 splash.png ,您需要如此設置。 -->
35     <preference
36         name="splashscreen"
37         value="splash" />
38     <!-- 設置啟動畫面顯示時間,一旦接收到 app deviceready 事件,將調用 navigator.splashscreen.hide() 方法。 -->
39     <preference
40         name="splashScreenDelay"
41         value="10000" />
42     <!-- 不如此不能監聽事件 -->
43     <feature name="App" >
44         <param
45             name="android-package"
46             value="org.apache.cordova.App" />
47     </feature>
48 
49 </widget>

 

AndroidManifest.xml:

 1 <?xml version='1.0' encoding='utf-8'?>
 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 3     package="com.example.demo"
 4     android:hardwareAccelerated="true"
 5     android:versionCode="1"
 6     android:versionName="0.0.1"
 7     android:windowSoftInputMode="adjustPan" >
 8 
 9     <supports-screens
10         android:anyDensity="true"
11         android:largeScreens="true"
12         android:normalScreens="true"
13         android:resizeable="true"
14         android:smallScreens="true"
15         android:xlargeScreens="true" />
16 
17     <application
18         android:debuggable="true"
19         android:hardwareAccelerated="true"
20         android:icon="@drawable/icon"
21         android:label="@string/app_name" >
22 
23         <!-- <screenOrientation>使程序始終豎向,不相應屏幕旋轉以免程序崩潰 -->
24         <activity
25             android:name="demo"
26             android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
27             android:label="@string/app_name"
28             android:screenOrientation="portrait"
29             android:theme="@android:style/Theme.Black.NoTitleBar" >
30             <intent-filter>
31                 <action android:name="android.intent.action.MAIN" />
32 
33                 <category android:name="android.intent.category.LAUNCHER" />
34             </intent-filter>
35         </activity>
36     </application>
37 
38     <uses-sdk
39         android:minSdkVersion="10"
40         android:targetSdkVersion="17" />
41     <!-- 配置訪問網絡權限 -->
42     <uses-permission android:name="android.permission.INTERNET" />
43     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
44     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
45 
46 </manifest>

 

2.打開之前通過sencha touch cmd生成的項目進行開發,開發完成后,如下操作

將之前通過Cordova 3.0生成的項目中的cordova.js引入到我們的sencha touch項目中,並且在app.json中配置

項目簡略結構如下:

配置如下:

  1 {
  2     /**
  3      * 項目的命名空間
  4      */
  5     "name": "app",
  6     /**
  7      * 項目起始html文件,路徑相對於此app.json文件
  8      */
  9     "indexHtmlPath": "index.html",
 10     /**
 11      * 運行此項目的url路徑,比如: "http://localhost/myapp/index.html".
 12      *
 13      *當設置此值時,將不能通過文件系統直接訪問。
 14      */
 15     "url": null,
 16     /**
 17      * 所需引用js文件
 18      * 單個格式如下
 19      *      {
 20      *          "path": "path/to/script.js" // 文件路徑,如果本地文件,路徑相對於此app.json文件
 21      *          "remote": true              // (可選值)
 22      *                                      // -默認值為"false"
 23      *                                      // -"true",如果這個文件是一個遠程文件不會被復制
 24      *          "update": "delta"           // (可選值)
 25      *                                      // 如果沒有指定,這個文件將只加載一次,
 26      *                                        // 緩存到localStorage里面,直到這個值被改變。
 27      *                                      //  - "delta" 增量更新此文件
 28      *                                      //  - "full" 當文件改變時,完全更新此文件
 29      *          "x-bootstrap": true         // (可選值)
 30      *                                      // 表示這是項目依賴文件。
 31      *                                      // 該文件不會被復制到生成目錄或引用
 32      *
 33      *      }
 34      */
 35     "js": [{
 36         "path": "touch/sencha-touch.js",
 37         "x-bootstrap": true
 38     },
 39     {
 40         "path": "cordova.js",
 41         "update": "delta"
 42     },
 43     {
 44         "path": "app.js",
 45         /* 表示所有的類生成到這個文件 */
 46         "bundle": true,
 47         "update": "delta"
 48     }],
 49     /**
 50      *所需引用js文件
 51      * 單個格式如下
 52      *      {
 53      *          "path": "path/to/script.js" // 文件路徑,如果本地文件,路徑相對於此app.json文件
 54      *          "remote": true              // (可選值)
 55      *                                      // -默認值為"false"
 56      *                                      // -"true",如果這個文件是一個遠程文件不會被復制
 57      *          "update": "delta"           // (可選值)
 58      *                                      // 如果沒有指定,這個文件將只加載一次,
 59      *                                        // 緩存到localStorage里面,直到這個文件被改變。
 60      *                                      //  - "delta" 增量更新此文件
 61      *                                      //  - "full" 當文件改變時,完全更新此文件
 62      *
 63      *      }
 64      */
 65     "css": [{
 66         "path": "resources/css/app.css",
 67         "update": "delta"
 68     },
 69     {
 70         "path": "resources/css/main.css",
 71         "update": "delta"
 72     }],
 73     /**
 74      *項目生成時用於自動生成HTML5應用程序緩存清單(cache.manifest)
 75      */
 76     "appCache": {
 77         /**
 78          * 本地緩存名單
 79          */
 80         "cache": ["index.html"],
 81         /**
 82          * 網絡緩存名單
 83          */
 84         "network": ["*"],
 85         /**
 86          * FALLBACK緩存名單
 87          */
 88         "fallback": []
 89     },
 90     /**
 91      * 項目生成時需要復制的資源文件,resources中文件夾不可以刪除,否則會出錯,里面的文件可以刪除
 92      */
 93     "resources": ["resources/images", "resources/json"],
 94     /**
 95      * 項目生成時忽略的文件/目錄名稱匹配,必須是有效的正則表達式
 96      */
 97     "ignore": ["\.svn$"],
 98     /**
 99      * 之前生成項目儲存目錄,用於進行增量更新,不可隨意改變此目錄下的文件
100      */
101     "archivePath": "archive",
102     /**
103      * 在cmd創建時需要引用的類
104      */
105     "requires": [],
106     /**
107      * 唯一ID,作為localStorage前綴。
108      * 通常情況下,你不應該改變這個值。
109      */
110     "id": "d8504e05-a9fc-4692-bdbc-94c3190751f5"
111 }

使用cmd生成項目

將生成后的項目引入到adt項目中

簽名打包

Eclipse工程中右鍵工程,彈出選項中選擇 android工具-生成簽名應用包:

選擇需要打包的android項目工程:

如果已有私鑰文件,選擇私鑰文件輸入密碼,如果沒有參見第6和7步創建私鑰文件:

4.輸入私鑰別名和密碼:

5.選擇APK存儲的位置,並完成設置 開始生成:

6.沒有私鑰文件的情況,創建私鑰文件:

7.輸入私鑰文件所需信息,並創建:

*SDK的安裝目錄最后不要有中文和空格,否則會出現不必要的錯誤。如果你的安裝路徑包含Program Files(有空格),用ADT打包會報錯,Ant方式打包的也會報錯,沒關系,不用重裝,解決方法:配置SDk環境變量和在Eclipse中配置SDK路徑的時候把Program Files改為Progra~1即可。(而且改成其他的都不行,只能是Progra~1,不信試試,這是Dos的規格)。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM