NuWa热更新框架的好处,就是可以“新建类和字段”。不过需要app重启才可以加载。废话不多说,下面的流程是我在Android Studio上亲自走了一遍,正确无误,希望可以帮到大家。
一、配置Project的build.gradle(就是配置项目总的build.gradle)
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'cn.jiajixin.nuwa:gradle:1.2.2'
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
我们在app的build.gradle的开头加入下行:
apply plugin: “cn.jiajixin.nuwa”
在dependencies块中加入下行:
compile ‘cn.jiajixin.nuwa:nuwa:1.0.0’
最后完整配置下来如:
apply plugin: 'com.android.application'
apply plugin: "cn.jiajixin.nuwa"
android {
compileSdkVersion 23
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.example.gao.nvwatest"
minSdkVersion 17
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
nuwa {
//括号里是Application类以及要排除Application父类
excludeClass = ['com/example/mynuwa/MyApplication.class']
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:24.0.0-alpha1'
compile 'cn.jiajixin.nuwa:nuwa:1.0.0'
}
三、新建项目
在项目中新建一个类如:MyApplication ,该类要继承Application
public class MyApplication extends Application {
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
Nuwa.init(this);
Nuwa.loadPatch(this, Environment.getExternalStorageDirectory().getAbsolutePath().concat("/patch.jar"));
}
}
进入项目所在目录,在app\build\outputs目录下有个nuwa文件夹,复制到一个地方,我复制到了D盘
四、开始修改项目中的bug
接下来是修改项目中的bug,修改好后就编译项目,编译步骤是(Build--->Build APK)
然后关键时刻来了,通过android studio命令来生成补丁包
android studio的命令行在什么地方呢??????如下图
直接输入:gradlew clean nuwaDebugPatch -P NuwaDir=D:/nuwa 就ok了
但是有的童鞋会遇到错误,如下图:
ANDROID_HOME is not defined这个错误是需要将android是sdk路径设置给它,所以接下来可以在android studio的命令行中继续输入
set ANDROID_HOME=sdk路径
如: set ANDROID_HOME=C:\Users\Administrator\AppData\Local\Android\Sdk
ok,问题解决了,那么再次输入:gradlew clean nuwaDebugPatch -P NuwaDir=D:/nuwa ,如果显示BUILD SUCCESS那就是成功了
那么我们的补丁包就生成成功了,就在项目的app\build\outputs\nuwa\debug目录下。就是patch.jar