准备文件:
(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"
}