Open woaimi520 opened 3 years ago
我直接按照官网的配置配是会报一下错误 所以才在网上去找的配置 Caused by: org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException: Could not find method tinkerSupport() for arguments [tinker_3k867nrbadqv1pdlrejtnp6yv$_run_closure2@6d599f14] on project ':app' of type org.gradle.api.Project.
我也遇到这样的问题, 我的解决方案是解压出来, 手动写yapatch, 然后再打包回去. 注意: 手动打包回去的时候, 确认下目录结构是否正确, 不能带一层顶级目录, 可以使用unzip -v命令来确认, 否则会找不到meta信息.
我查询了issues中的相关问题 但是还是没有得到解决 问题就是生成的补丁包在上传 bugly的时候提示没有 creatTIme等信息 应该是差了yapatch文件,yapatch文件这玩意生成需要 tinker-support里面的脚本 但是我的只有tinker,
另外: classpath 'com.android.tools.build:gradle:3.5.3' //只能到3.5.3 再高热更新就报错
下面是我的tinker.gradle配置(网上找的 )我本地测试没有问题 就是不能上传到bugly
def bakPath = file("${buildDir}/bakApk/")
ext { //for some reason, you may want to ignore tinkerBuild, such as instant run debug build? tinkerEnabled = true //基准apk路径 tinkerOldApkPath = "${bakPath}/app-release-0125-14-29-09.apk" //未开启混淆,则不需要填写 tinkerApplyMappingPath = "${bakPath}/" //基准apk中的R文件路径 tinkerApplyResourcePath = "${bakPath}/app-release-0125-14-29-09-R.txt" //如果你修复了res文件,需要指定你bug版本的R.txt文件 tinkerBuildFlavorDirectory = "${bakPath}/"
}
def getOldApkPath() { return hasProperty("OLD_APK") ? OLD_APK : ext.tinkerOldApkPath } def getApplyMappingPath() { return hasProperty("APPLY_MAPPING") ? APPLY_MAPPING : ext.tinkerApplyMappingPath } def getApplyResourceMappingPath() { return hasProperty("APPLY_RESOURCE") ? APPLY_RESOURCE : ext.tinkerApplyResourcePath } def buildWithTinker() { return hasProperty("TINKER_ENABLE") ? TINKER_ENABLE : ext.tinkerEnabled } def getTinkerBuildFlavorDirectory() { return ext.tinkerBuildFlavorDirectory }
if (buildWithTinker()) { apply plugin: 'com.tencent.tinker.patch'
// path = "/usr/local/bin/7za" } }
}