Tinker 使用问题

使用官网的build.gradle(APP级别和工程级别)文件和自己的进行merger
可能的问题有:

  • tinker id not set
    这时候,在gradle.properties 文件中写入TINKER_ID = "yourId" 因为在app级别的build文件中有tinkerId = getTinkerIdValue()
def getTinkerIdValue() {
    return hasProperty("TINKER_ID") ? TINKER_ID : gitSha()
}

先检查gradle.properties 有没有TINKER_ID的参数,有就返回它否则就执行

def gitSha() {
    try {
        String gitRev = 'git rev-parse --short HEAD'.execute(null, project.rootDir).text.trim()
        if (gitRev == null) {
            throw new GradleException("can't get git rev, you should add git to system path or just input test value, such as 'testTinkerId'")
        }
        return gitRev
    } catch (Exception e) {
        throw new GradleException("can't get git rev, you should add git to system path or just input test value, such as 'testTinkerId'")
    }
}

我没有git 如果使用这个方法的话最后同步会失败,那我开始的解决方法是 在APP 的 build文件中直接写死tinkerId = "1.0",然后发现了可以在gradle.properties 设置,所以最后设置在了gradle.properties 中

  • 还有一个问题是,在写程序的时候,加载补丁之前一定要先代码检查所需要的权限,不然某些手机补丁会合成失败。一定一定要检查权限!!!

你可能感兴趣的:(Tinker 使用问题)