Cordova 系(wex5、ionic等)生成的android工程嵌入 现有的Android项目

准备文件:

(1)一个ionic生成的studio工程(用studio 可以正常运行)。

注:IT盈买的【 [扩展] android studio安装】=> ionicdemo02_ionic_cordova下 ionic生成的studio工程)

(2)一个Android studio工程(创建或现成的)。

1==》加入CordovaLib 

(1) 拷贝整个CordovaLib module到现有项目中,

WeX5:还要JustepGetContent

(2) settings.gradle 加入 include ":CordovaLib"

(3) app module =》 build.gradle 的dependencies下加入 

compile project(':CordovaLib’)

WeX5:minSdkVersion 改为 18 (和x5的一致)

编译一次。

2==》加入www资源文件(包含index.html的)

拷贝整个www到assets目录下。

没有assets文件夹时,选中app module =》new =》Folder => Assets Folder 创建

3==》加入config.xml

拷贝config.xml 到res/xml/ 下面。

4==》加入CordovaActvity相关类

(1)拷贝java文件到src/ 下

io.ionic ( MainActivity.java 在此包里面)

org.apache.cordova

(2)androidManifast.xml 注册MainActivity。

WeX5注:拷贝src下的所有java文件过来(通过文件的方式)

WeX5注:拷贝libs下的so及jar文件

gradle加入:compile fileTree(dir: 'libs', include: ['*.jar'])

并在manifast加上网络访问及相关权限。

5==》原生类启动ionic 的 MainActivity即可。

如:

Log.d("goIonic","goIonic");

startActivity(new Intent(this, MainActivity.class));

=================异常处理======================

异常1:Error:Execution failed for task ':app:processDebugManifest'.

> Manifest merger failed with multiple errors, see logs

原因:一般都是因为引入的三方包存在相同的label icon 等名字或者是min sdk版本不一致。。

解决:1、在manifest根标签上加入xmlns:tools="http://schemas.android.com/tools",

  2、并在Manifest.xml的application标签下添加tools:replace="icon, label, theme"

3、minSDK版本改为一致。

异常2:Error:Error: Expected resource of type id [ResourceType]打包apk是提示错误

加入  lintOptions {  disable"ResourceType" }

android {

    compileSdkVersion19

    buildToolsVersion "23.0.3"

    defaultConfig {

    }

    lintOptions {

        disable"ResourceType"

    }

你可能感兴趣的:(Cordova 系(wex5、ionic等)生成的android工程嵌入 现有的Android项目)