Warning:ignoreWarning is false, but we found some loader class has been changed in new dex. Such these changes will not take effect!! related classes: {Lcom/tencent/tinker/loader/R$drawable;,Lcom/newseax/tutor/application/NewSeaXApplication;}
java.lang.RuntimeException: com.tencent.tinker.build.util.TinkerPatchException: some loader class has been changed in new dex. Such these changes will not take effect!! related classes: {Lcom/tencent/tinker/loader/R$drawable;,Lcom/newseax/tutor/application/NewSeaXApplication;}
at com.tencent.tinker.build.decoder.ApkDecoder$ApkFilesVisitor.visitFile(ApkDecoder.java:179)
at com.tencent.tinker.build.decoder.ApkDecoder$ApkFilesVisitor.visitFile(ApkDecoder.java:138)
at java.nio.file.Files.walkFileTree(Files.java:2670)
at java.nio.file.Files.walkFileTree(Files.java:2742)
at com.tencent.tinker.build.decoder.ApkDecoder.patch(ApkDecoder.java:113)
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:85)
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.DefaultTaskClassInfoStore$StandardTaskAction.doExecute(DefaultTaskClassInfoStore.java:141)
at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:121)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:731)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:705)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:122)
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:197)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)
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.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
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:197)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
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:124)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.tencent.tinker.build.util.TinkerPatchException: some loader class has been changed in new dex. Such these changes will not take effect!! related classes: {Lcom/tencent/tinker/loader/R$drawable;,Lcom/newseax/tutor/application/NewSeaXApplication;}
at com.tencent.tinker.build.util.ExcludedClassModifiedChecker.checkIfExcludedClassWasModifiedInNewDex(ExcludedClassModifiedChecker.java:206)
at com.tencent.tinker.build.decoder.DexDiffDecoder.patch(DexDiffDecoder.java:136)
at com.tencent.tinker.build.decoder.UniqueDexDiffDecoder.patch(UniqueDexDiffDecoder.java:39)
at com.tencent.tinker.build.decoder.ApkDecoder$ApkFilesVisitor.visitFile(ApkDecoder.java:176)
... 59 more
以及日志文件 log.txt 的文件信息:
-----------------------Tinker patch begin-----------------------
configuration:
oldApk:/Users/yanqilong/Company/newseax_android_x/app/build/bakApk/app-debug-0204-15-58-02.apk
newApk:/Users/yanqilong/Company/newseax_android_x/app/build/outputs/apk/debug/app-debug.apk
outputFolder:/Users/yanqilong/Company/newseax_android_x/app/build/outputs/apk/tinkerPatch/debug
isIgnoreWarning:false
isProtectedApp:false
7-ZipPath:/Users/yanqilong/.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:patchMessage, filed value:tinker is sample to use
filed name:platform, filed value:all
filed name:patchVersion, filed value:1.0
dex configs:
dexMode: jar
dexPattern:classes.*\.dex
dexPattern:assets/secondary-dex-.\.jar
dex loader:com.tencent.tinker.loader.*
dex loader:tinker.sample.android.app.BaseBuildInfo
dex loader:com.newseax.tutor.application.NewSeaXApplication
lib configs:
libPattern:lib/.*/.*\.so
resource configs:
resPattern:AndroidManifest\.xml
resPattern:res/.*
resPattern:resources\.arsc
resPattern:assets/.*
resIgnore change:assets/sample_meta\.txt
largeModSize:100kb
useApplyResource:false
Analyze old and new apk files:
old apk: app-debug-0204-15-58-02.apk, size=4106051, md5=7fd4c354798f97a7600051f0e5c33b77
new apk: app-debug.apk, size=4012638, md5=1f2f43ddba89154e3ef3541d39bc4360
Manifest was changed, while there's no any new components added. Make sure if such changes were all you expected.
UnZipping apk to /Users/yanqilong/Company/newseax_android_x/app/build/outputs/apk/tinkerPatch/debug/app-debug-0204-15-58-02
UnZipping apk to /Users/yanqilong/Company/newseax_android_x/app/build/outputs/apk/tinkerPatch/debug/app-debug
Found large modify resource: resources.arsc size:292156
Found modify resource: res/drawable-v24/ic_launcher_foreground.xml
Found modify resource: res/drawable-v21/avd_hide_password.xml
Found modify resource: res/drawable-v21/design_password_eye.xml
Found modify resource: res/drawable-v21/avd_show_password.xml
found modify resource: AndroidManifest.xml, but it is AndroidManifest.xml, just ignore!
Check for loader classes in dex: classes.dex
Warning:ignoreWarning is false, but we found some loader class has been changed in new dex. Such these changes will not take effect!! related classes: {Lcom/tencent/tinker/loader/R$drawable;,Lcom/newseax/tutor/application/NewSeaXApplication;}
异常类型:编译异常
tinker版本:如:1.9.2
gradle版本:如:3.0.1
是否使用热更新SDK:否
系统:Mac
运行 tinkerPatchDebug命令会报错,生成的编译日志信息如下:
以及日志文件 log.txt 的文件信息: