Tencent / tinker

Tinker is a hot-fix solution library for Android, it supports dex, library and resources update without reinstall apk.
Other
17.17k stars 3.34k forks source link

path不能生成,求助 #920

Closed nysin closed 6 years ago

nysin commented 6 years ago

异常类型:编译patch时报错 tinker版本:如:1.9.8

gradle版本:如:3.1.4

是否使用热更新SDK: 如 TinkerPatch SDK

系统:如:Mac

堆栈/日志: -----------------------Tinker patch begin----------------------- configuration: oldApk:./OnlineApk/SYR-release.apk newApk:/Users/tanglang/Documents/work/projects/company//build/outputs/apk/release/v_3.6.1.apk outputFolder:/Users/tanglang/Documents/work/projects/company//build/outputs/apk/tinkerPatch/release isIgnoreWarning:false isProtectedApp:false 7-ZipPath:/Users/tanglang/.gradle/caches/modules-2/files-2.1/com.tencent.mm/SevenZip/1.1.10/cc390e6c704b74496d9ba0e9b46d2cf8a2a96b84/SevenZip-1.1.10-osx-x86_64.exe useSignAPk:true package meta fields: filed name:platform, filed value:all filed name:patchMessage, filed value:tinker is sample to use dex configs: dexMode: jar dexPattern:classes..dex dexPattern:assets/secondary-dex-..jar dex loader:cn.zhimawu.shouyiren.application.MainApplication dex loader:com.tencent.tinker.loader. lib configs: libPattern:lib/armeabi/..so resource configs: resPattern:assets/. resPattern:AndroidManifest.xml resPattern:resources.arsc resPattern:res/.* resIgnore change:assets/sample_meta.txt largeModSize:100kb useApplyResource:false

Analyze old and new apk files: old apk: SYR-release.apk, size=28021571, md5=e36f0d143ab0e2b5b10930a505b350b0 new apk: SYR_v_3.6.1.apk, size=28057386, md5=b635082786dd9cbe747b6a14cd2be40e

Warning:ignoreWarning is false, found added services: [com.tencent.tinker.lib.service.TinkerPatchService$IntentServiceRunner, com.tencent.tinker.lib.service.TinkerPatchService$JobServiceRunner, com.tencent.tinker.lib.service.TinkerPatchService$IntentServiceRunner$InnerService] currently tinker does not support increase new services, such these changes would not take effect. com.tencent.tinker.build.util.TinkerPatchException: Warning:ignoreWarning is false, found added services: [com.tencent.tinker.lib.service.TinkerPatchService$IntentServiceRunner, com.tencent.tinker.lib.service.TinkerPatchService$JobServiceRunner, com.tencent.tinker.lib.service.TinkerPatchService$IntentServiceRunner$InnerService] currently tinker does not support increase new services, such these changes would not take effect. at com.tencent.tinker.build.decoder.ManifestDecoder.announceWarningOrException(ManifestDecoder.java:302) at com.tencent.tinker.build.decoder.ManifestDecoder.getIncrementServices(ManifestDecoder.java:211) at com.tencent.tinker.build.decoder.ManifestDecoder.patch(ManifestDecoder.java:102) at com.tencent.tinker.build.decoder.ApkDecoder.patch(ApkDecoder.java:109) at com.tencent.tinker.build.patch.Runner.tinkerPatch(Runner.java:65) at com.tencent.tinker.build.patch.Runner.run(Runner.java:48) at com.tencent.tinker.build.patch.Runner.gradleRun(Runner.java:41) at com.tencent.tinker.build.patch.Runner$gradleRun.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) at com.tencent.tinker.build.gradle.task.TinkerPatchSchemaTask.tinkerPatch(TinkerPatchSchemaTask.groovy:86) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26) at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:780) at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:747) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70) at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62) at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97) at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87) at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104) tanglangdeMacBook-Pro:ShouYiRen tanglang$

tys282000 commented 6 years ago

额,你新增了Service,由于tinker不支持新增Service,所以就报错中断编译了。

xsslong commented 5 years ago

额,你新增了Service,由于tinker不支持新增Service,所以就报错中断编译了。

您好,我这边遇到同样问题,我并没有新增Service,而且日志中的Service不都是tinker的吗? [com.tencent.tinker.lib.service.TinkerPatchService$IntentServiceRunner, com.tencent.tinker.lib.service.TinkerPatchService$JobServiceRunner, com.tencent.tinker.lib.service.TinkerPatchService$IntentServiceRunner$InnerService]

idency commented 4 years ago

我也遇到这个问题了,顺利解决了. 原因是我打基础包的时候的tinker.lib版本跟打补丁包时候的版本不一样了. 所以对于tinker来说,就认为你的tinker.lib下的service发生了变动. 只要保证基础包和打补丁包时的lib版本一致就行