最新版phonegap3.5.1环境搭建

安装前准备工作

  1、下载java sdk 1.6以上版本

  2、下载Android Development Tools

  已经包括了Android sdk、esclipe,解压即可使用。

  3、设置系统变量
   系统变量 Path后面添加:
    一定要注意的是比 在2.9的安装中多了ant的安装,还有就是下面列出来的四个路径不能是中文,不然ant编译会错误
       D:android-sdk-windows	ools  
       D:android-sdk-windowsplatform-tools
       D:android_eclispeeclipsepluginsorg.apache.ant_1.8.3.v201301120609in
     D:Program Files (x86)Javajdk1.7.0_17in
    新增 JAVA_HOME,设置值为java sdk 根目录:
    D:Program Files (x86)Javajdk1.7.0_17

1.先安装好android环境

用npm下载cordova最新版

npm install -g cordova

在当前路径中运行以下命令

cordova create MyApp com.example.myapp "MyApp"

生成一个MyApp的项目工程。

cd MyApp

cordova platform add android

在C:UsersAdministrator.cordovalibandroidcordova中会生成一个cordova版本,我的是3.5.1

2.制作jar文件

将cmd切换到路径C:UsersAdministrator.cordovalibandroidcordova3.5.1framework

android update project -p C:UsersAdministrator.cordovalibandroidcordova3.5.1framework

ant jar

在C:UsersAdministrator.cordovalibandroidcordova3.5.1framework中会生成一个cordova-3.5.1.jar文件,

把这个包扔到工程的libs目录下,这样就不用打开xxx-CordovaLib。

3.在eclipse中新建Android Project,取名MyApp

4.进入C:UsersAdministrator.cordovalibandroidcordova3.5.1framework。

  将assets下的www文件夹拷到MyApp中的assets(cordova.js、index.html)下。
  把cordova-2.9.0.jar文件copy到/libs目录下。
  再把res中的xml目录copy到MyApp的res目录下。
截图如下:

5.在/assets/www下建立index.html文件,内容看起来像这样

<!DOCTYPE HTML> 
<html>
    <head>
        <title>PhoneGap</title>
        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    </head>
    <body>
        <h1>Hello PhoneGap</h1>
    </body>
</html>

6.将以下权限配置的xml内容copy到AndroidManifest.xml文件中:

<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="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.READ_PHONE_STATE" />
<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.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" />

7.在刚刚新建的Android Project中找到libs目录并在cordova.jar上点击右键,选择 Build Path->Add to Build Path

8.修改layout下的activity_main.xml

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:orientation="vertical" >  
    <org.apache.cordova.CordovaWebView  
        android:id="@+id/cordovaWebView1"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent" />  
</LinearLayout> 

9. 最后再修改下src下的Java主文件:

package com.shiqudou.myapp;

import java.util.concurrent.ExecutorService;  
import java.util.concurrent.Executors;  
import org.apache.cordova.CordovaWebView;  
import org.apache.cordova.CordovaInterface;  
import org.apache.cordova.CordovaPlugin;  
import android.app.Activity;  
import android.content.Intent;  
import android.os.Bundle;  
public class MainActivity extends Activity implements CordovaInterface {  
          
        private final ExecutorService threadPool = Executors.newCachedThreadPool();  
        private CordovaWebView cordovaWebView;  
        @Override  
        public void onCreate(Bundle savedInstanceState) {  
                super.onCreate(savedInstanceState);  
                setContentView(R.layout.activity_main);  
                cordovaWebView = (CordovaWebView) findViewById(R.id.cordovaWebView1);  
                cordovaWebView.loadUrl("file:///android_asset/www/index.html");  
        }  
          
        @Override  
        public void onDestroy() {  
                super.onDestroy();  
                if (cordovaWebView != null) {  
                        cordovaWebView.handleDestroy();  
                }  
        }  
          
        @Override  
        public void startActivityForResult(CordovaPlugin command, Intent intent,  
                        int requestCode) {  
                // TODO Auto-generated method stub  
        }  
        @Override  
        public void setActivityResultCallback(CordovaPlugin plugin) {  
                // TODO Auto-generated method stub  
        }  
        @Override  
        public Activity getActivity() {  
                // TODO Auto-generated method stub  
                return this;  
        }  
        @Override  
        public Object onMessage(String id, Object data) {  
                // TODO Auto-generated method stub  
                return null;  
        }  
        @Override  
        public ExecutorService getThreadPool() {  
                // TODO Auto-generated method stub  
                return threadPool;  
        }  
}  

试着运行下就OK了

原文地址:https://www.cnblogs.com/shiqudou/p/3902423.html