1. 编译demo
Tinker GitHub: https://github.com/Tencent/tinker
Q1. clone之后,仅仅将tinker-sample-android 工程导入Android Studio,如果将整个工程导入的话,否则死活编译不过
Q2. 编译命令 ./gradlew tinkerPatchDebug 报错:
A problem occurred evaluating project ':app'.
> java.lang.UnsupportedClassVersionError: com/android/build/gradle/AppPlugin : Unsupported major.minor version 52.0
是由Java版本不兼容导致的问题,解决办法工程的gradle降级:
classpath 'com.android.tools.build:gradle:2.2.0'
更改成
classpath 'com.android.tools.build:gradle:2.1.0'
Q3. gradle方法hasProperty(“TINKER_ID”)是指命令行运行时是否有加入相关参数;
Q4. 先运行一个base.apk 在手机上,再修改一些东西,通过studio的terminal命令行gradlew tinkerPatchDebug生成patch包,生成目录为: build/outputs/tinkerPatch
Q5. Application修改
将我们自己Application类以及它的继承类的所有代码拷贝到自己的ApplicationLike继承类中,例如SampleApplicationLike。你也可以直接将自己的Application改为继承ApplicationLike;
Application的attachBaseContext方法实现要单独移动到onBaseContextAttached中;
对ApplicationLike中,引用application的地方改成getApplication();
对其他引用Application或者它的静态对象与方法的地方,改成引用ApplicationLike的静态对象与方法;