Tencent / tinker

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

Warning:ignoreWarning is false, but we found all loader classes don't appear in old primary dex. #652

Closed ftgqzhengkai closed 6 years ago

ftgqzhengkai commented 6 years ago
异常类型:编译异常

tinker版本:如:1.9.0

gradle版本:4.1

Android gradle plugin版本:3.0.0

Android Studio 版本:3.0.0正式版

是否使用热更新SDK: 如 TinkerPatch SDK 或者 Bugly SDK

系统:如:Windows

堆栈/日志:
1. 如是编译异常,请在执行gradle命令时,加上--stacktrace;
2. 日志我们需要过滤"Tinker."关键字;
3. 对于合成失败的情况,请给出:patch进程的日志,这里需要将Android Moniter右上角设为No Filter。
Warning:ignoreWarning is false, but we found all loader classes don't appear in old primary dex.
java.lang.RuntimeException: com.tencent.tinker.build.util.TinkerPatchException: all loader classes don't appear in old primary dex.
    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)
全部日志

Configuration 'compile' in project ':app' is deprecated. Use 'implementation' instead.

----------------------tinker build warning ------------------------------------
tinker auto operation: 
excluding annotation processor and source template from app packaging. Enable dx jumboMode to reduce package size.
enable dx jumboMode to reduce package size.
disable preDexLibraries to prevent ClassDefNotFoundException when your app is booting.

tinker will change your build configs:
we will add TINKER_ID=2.0.17 in your build output manifest file build/intermediates/manifests/full/*

if minifyEnabled is true
you will find the gen proguard rule file at build/intermediates/tinker_intermediates/tinker_proguard.pro
and we will help you to put it in the proguardFiles.

if multiDexEnabled is true
you will find the gen multiDexKeepProguard file at build/intermediates/tinker_intermediates/tinker_multidexkeep.pro
and we will help you to put it in the MultiDexKeepProguardFile.

if applyResourceMapping file is exist
we will build app apk with resource R.txt D:\workspace\MobileStation3.0\app\build\bakApk/app-1108-16-59-10/app-r-beta-R.txt file
if resources.arsc has changed, you should use applyResource mode to build the new apk!
-----------------------------------------------------------------

Configuration 'compile' in project ':cityexpress' is deprecated. Use 'implementation' instead.
Configuration 'compile' in project ':global' is deprecated. Use 'implementation' instead.
Configuration 'compile' in project ':gps' is deprecated. Use 'implementation' instead.
Configuration 'compile' in project ':im' is deprecated. Use 'implementation' instead.
:app:preBuild UP-TO-DATE
:global:preBuild UP-TO-DATE
:androidbase:preBuild UP-TO-DATE
:global:preDebugBuild UP-TO-DATE
:androidbase:preDebugBuild UP-TO-DATE
:global:checkDebugManifest
:androidbase:compileDebugAidl
:cityexpress:preBuild UP-TO-DATE
:gps:preBuild UP-TO-DATE
:cityexpress:preDebugBuild UP-TO-DATE
:gps:preDebugBuild UP-TO-DATE
:gps:checkDebugManifest
:cityexpress:checkDebugManifest UP-TO-DATE
:cityexpress:processDebugManifest
:gps:checkDebugManifest UP-TO-DATE
:gps:processDebugManifest
:global:checkDebugManifest UP-TO-DATE
:global:processDebugManifest
:gps:processDebugManifest UP-TO-DATE
:im:preBuild UP-TO-DATE
:im:preDebugBuild UP-TO-DATE
:im:checkDebugManifest
:cityexpress:processDebugManifest UP-TO-DATE
:wallet:preBuild UP-TO-DATE
:wallet:preDebugBuild UP-TO-DATE
:im:checkDebugManifest UP-TO-DATE
:global:processDebugManifest UP-TO-DATE
:wallet:checkDebugManifest UP-TO-DATE
:im:processDebugManifest
:wallet:processDebugManifest
:cityexpress:packageDebugRenderscript NO-SOURCE
:global:packageDebugRenderscript NO-SOURCE
:gps:packageDebugRenderscript NO-SOURCE
:app:prepareLintJar UP-TO-DATE
:app:generateRBetaResValues
:im:processDebugManifest UP-TO-DATE
:im:packageDebugRenderscript NO-SOURCE
:app:generateRBetaResValues UP-TO-DATE
:cityexpress:generateDebugResValues UP-TO-DATE
:global:generateDebugResValues
:gps:generateDebugResValues
:wallet:processDebugManifest UP-TO-DATE
:wallet:packageDebugRenderscript
:gps:generateDebugResValues UP-TO-DATE
:im:generateDebugResValues
:wallet:packageDebugRenderscript NO-SOURCE
:wallet:generateDebugResValues
:global:generateDebugResValues UP-TO-DATE
:wallet:generateDebugResValues UP-TO-DATE
:app:createRBetaCompatibleScreenManifests
:cityexpress:platformAttrExtractor
:im:generateDebugResValues UP-TO-DATE
:cityexpress:platformAttrExtractor UP-TO-DATE
:global:platformAttrExtractor
:gps:platformAttrExtractor
:app:createRBetaCompatibleScreenManifests UP-TO-DATE
:gps:platformAttrExtractor UP-TO-DATE
:app:splitsDiscoveryTaskRBeta
:im:platformAttrExtractor
:global:platformAttrExtractor UP-TO-DATE
:wallet:platformAttrExtractor
:im:platformAttrExtractor UP-TO-DATE
:cityexpress:generateDebugBuildConfig
:wallet:platformAttrExtractor UP-TO-DATE
:global:generateDebugBuildConfig
:app:splitsDiscoveryTaskRBeta UP-TO-DATE
:gps:generateDebugBuildConfig
:cityexpress:generateDebugBuildConfig UP-TO-DATE
:cityexpress:prepareLintJar
:global:generateDebugBuildConfig UP-TO-DATE
:global:prepareLintJar
:cityexpress:prepareLintJar UP-TO-DATE
:im:generateDebugBuildConfig
:gps:generateDebugBuildConfig UP-TO-DATE
:gps:prepareLintJar
:im:generateDebugBuildConfig UP-TO-DATE
:im:prepareLintJar
:global:prepareLintJar UP-TO-DATE
:gps:prepareLintJar UP-TO-DATE
:im:prepareLintJar UP-TO-DATE
:global:processDebugJavaRes
:gps:processDebugJavaRes
:im:processDebugJavaRes
:global:processDebugJavaRes NO-SOURCE
:wallet:generateDebugBuildConfig
:im:processDebugJavaRes NO-SOURCE
:cityexpress:processDebugJavaRes NO-SOURCE
:app:mergeRBetaShaders UP-TO-DATE
:app:compileRBetaShaders
:gps:processDebugJavaRes NO-SOURCE
:app:compileRBetaShaders UP-TO-DATE
:cityexpress:mergeDebugShaders
:wallet:generateDebugBuildConfig UP-TO-DATE
:wallet:prepareLintJar
:app:generateRBetaAssets UP-TO-DATE
:global:mergeDebugShaders
:wallet:prepareLintJar UP-TO-DATE
:wallet:processDebugJavaRes NO-SOURCE
:gps:mergeDebugShaders
:cityexpress:mergeDebugShaders UP-TO-DATE
:cityexpress:compileDebugShaders UP-TO-DATE
:cityexpress:generateDebugAssets UP-TO-DATE
:cityexpress:mergeDebugAssets UP-TO-DATE
:im:mergeDebugShaders UP-TO-DATE
:im:compileDebugShaders UP-TO-DATE
:im:generateDebugAssets UP-TO-DATE
:im:mergeDebugAssets UP-TO-DATE
:wallet:mergeDebugShaders UP-TO-DATE
:wallet:compileDebugShaders UP-TO-DATE
:wallet:generateDebugAssets UP-TO-DATE
:wallet:mergeDebugAssets UP-TO-DATE
:app:extractTryWithResourcesSupportJarRBeta UP-TO-DATE
:app:mergeRBetaJniLibFolders UP-TO-DATE
:cityexpress:compileDebugNdk NO-SOURCE
:cityexpress:mergeDebugJniLibFolders
:global:mergeDebugShaders UP-TO-DATE
:global:compileDebugShaders UP-TO-DATE
:global:generateDebugAssets UP-TO-DATE
:global:mergeDebugAssets
:gps:mergeDebugShaders UP-TO-DATE
:cityexpress:mergeDebugJniLibFolders UP-TO-DATE
:gps:compileDebugShaders
:cityexpress:transformNativeLibsWithMergeJniLibsForDebug
:gps:compileDebugShaders UP-TO-DATE
:gps:generateDebugAssets UP-TO-DATE
:gps:mergeDebugAssets
:cityexpress:transformNativeLibsWithMergeJniLibsForDebug UP-TO-DATE
:cityexpress:transformNativeLibsWithIntermediateJniLibsForDebug UP-TO-DATE
:im:compileDebugNdk NO-SOURCE
:im:mergeDebugJniLibFolders UP-TO-DATE
:im:transformNativeLibsWithMergeJniLibsForDebug
:global:mergeDebugAssets UP-TO-DATE
:global:compileDebugNdk NO-SOURCE
:global:mergeDebugJniLibFolders
:gps:mergeDebugAssets UP-TO-DATE
:gps:compileDebugNdk NO-SOURCE
:global:mergeDebugJniLibFolders UP-TO-DATE
:gps:mergeDebugJniLibFolders
:global:transformNativeLibsWithMergeJniLibsForDebug
:im:transformNativeLibsWithMergeJniLibsForDebug UP-TO-DATE
:im:transformNativeLibsWithIntermediateJniLibsForDebug UP-TO-DATE
:wallet:compileDebugNdk NO-SOURCE
:wallet:mergeDebugJniLibFolders
:global:transformNativeLibsWithMergeJniLibsForDebug UP-TO-DATE
:global:transformNativeLibsWithIntermediateJniLibsForDebug UP-TO-DATE
:app:validateSigningRBeta
:wallet:mergeDebugJniLibFolders UP-TO-DATE
:wallet:transformNativeLibsWithMergeJniLibsForDebug UP-TO-DATE
:wallet:transformNativeLibsWithIntermediateJniLibsForDebug
:gps:mergeDebugJniLibFolders UP-TO-DATE
:gps:transformNativeLibsWithMergeJniLibsForDebug
:wallet:transformNativeLibsWithIntermediateJniLibsForDebug UP-TO-DATE
:gps:transformNativeLibsWithMergeJniLibsForDebug UP-TO-DATE
:gps:transformNativeLibsWithIntermediateJniLibsForDebug UP-TO-DATE
:androidbase:compileDebugAidl UP-TO-DATE
:androidbase:compileDebugRenderscript
:global:compileDebugAidl
:androidbase:compileDebugRenderscript UP-TO-DATE
:androidbase:checkDebugManifest UP-TO-DATE
:androidbase:generateDebugBuildConfig UP-TO-DATE
:androidbase:prepareLintJar UP-TO-DATE
:androidbase:generateDebugResValues UP-TO-DATE
:androidbase:generateDebugResources UP-TO-DATE
:androidbase:packageDebugResources
:global:compileDebugAidl UP-TO-DATE
:gps:compileDebugAidl UP-TO-DATE
:im:compileDebugAidl
:androidbase:platformAttrExtractor UP-TO-DATE
:androidbase:processDebugManifest
:im:compileDebugAidl UP-TO-DATE
:androidbase:processDebugManifest UP-TO-DATE
:wallet:compileDebugAidl
:androidbase:processDebugResources
:app:preRBetaBuild
:wallet:compileDebugAidl UP-TO-DATE
:cityexpress:compileDebugAidl UP-TO-DATE
:app:preRBetaBuild UP-TO-DATE
:app:compileRBetaAidl UP-TO-DATE
:app:checkRBetaManifest UP-TO-DATE
:app:generateRBetaBuildConfig UP-TO-DATE
:app:processRBetaManifest
:androidbase:generateDebugSources
:androidbase:javaPreCompileDebug UP-TO-DATE
:androidbase:compileDebugJavaWithJavac
:app:tinkerProcessRBetaManifest
tinker add tinker_id_2.0.17 to your AndroidManifest.xml D:\workspace\MobileStation3.0\app\build\intermediates\manifests\full\r\beta\AndroidManifest.xml
tinker add com.transport.mobilestation.system.application.MobileStationApplication to dex loader pattern
tinker add com.tencent.tinker.loader.* to dex loader pattern
tinker gen AndroidManifest.xml in build/intermediates/tinker_intermediates/AndroidManifest.xml

:app:tinkerProcessRBetaResourceId
we build app apk with apply resource mapping file D:\workspace\MobileStation3.0\app\build\bakApk/app-1108-16-59-10/app-r-beta-R.txt

:androidbase:compileDebugJavaWithJavac UP-TO-DATE
:androidbase:processDebugJavaRes NO-SOURCE
:androidbase:transformClassesAndResourcesWithPrepareIntermediateJarsForDebug UP-TO-DATE
:androidbase:packageDebugRenderscript NO-SOURCE
:cityexpress:compileDebugRenderscript
:global:compileDebugRenderscript
:gps:compileDebugRenderscript
:cityexpress:compileDebugRenderscript UP-TO-DATE
:cityexpress:generateDebugResources UP-TO-DATE
:cityexpress:packageDebugResources
:gps:compileDebugRenderscript UP-TO-DATE
:gps:generateDebugResources UP-TO-DATE
:gps:packageDebugResources
:global:compileDebugRenderscript UP-TO-DATE
:global:generateDebugResources UP-TO-DATE
:global:packageDebugResources
:gps:packageDebugResources UP-TO-DATE
:im:compileDebugRenderscript UP-TO-DATE
:im:generateDebugResources UP-TO-DATE
:im:packageDebugResources
:global:packageDebugResources UP-TO-DATE
:wallet:compileDebugRenderscript UP-TO-DATE
:wallet:generateDebugResources UP-TO-DATE
:wallet:packageDebugResources
:im:packageDebugResources UP-TO-DATE
:global:processDebugResources
:wallet:packageDebugResources UP-TO-DATE
:androidbase:mergeDebugShaders UP-TO-DATE
:androidbase:compileDebugShaders
:global:processDebugResources UP-TO-DATE
:gps:processDebugResources
:androidbase:compileDebugShaders UP-TO-DATE
:global:generateDebugSources UP-TO-DATE
:global:javaPreCompileDebug
:gps:processDebugResources UP-TO-DATE
:im:processDebugResources UP-TO-DATE
:wallet:processDebugResources
:global:javaPreCompileDebug UP-TO-DATE
:global:compileDebugJavaWithJavac
:wallet:processDebugResources UP-TO-DATE
:gps:generateDebugSources UP-TO-DATE
:im:generateDebugSources UP-TO-DATE
:wallet:generateDebugSources UP-TO-DATE
:androidbase:generateDebugAssets UP-TO-DATE
:androidbase:mergeDebugAssets UP-TO-DATE
:androidbase:compileDebugNdk NO-SOURCE
:androidbase:mergeDebugJniLibFolders UP-TO-DATE
:androidbase:transformNativeLibsWithMergeJniLibsForDebug UP-TO-DATE
:androidbase:transformNativeLibsWithIntermediateJniLibsForDebug UP-TO-DATE
:cityexpress:packageDebugResources UP-TO-DATE
:cityexpress:processDebugResources UP-TO-DATE
:cityexpress:generateDebugSources UP-TO-DATE
:global:compileDebugJavaWithJavac UP-TO-DATE
:global:transformClassesWithRealmTransformerForDebug
tinker gen resource public.xml in build/intermediates/tinker_intermediates/public.xml
tinker gen resource idx.xml in build/intermediates/tinker_intermediates/idx.xml

:app:compileRBetaRenderscript UP-TO-DATE
:app:generateRBetaResources UP-TO-DATE
:app:mergeRBetaResources
:global:transformClassesWithRealmTransformerForDebug UP-TO-DATE
:global:transformClassesAndResourcesWithPrepareIntermediateJarsForDebug UP-TO-DATE
:gps:javaPreCompileDebug UP-TO-DATE
:gps:compileDebugJavaWithJavac UP-TO-DATE
:gps:transformClassesWithRealmTransformerForDebug UP-TO-DATE
:gps:transformClassesAndResourcesWithPrepareIntermediateJarsForDebug UP-TO-DATE
:im:javaPreCompileDebug UP-TO-DATE
:im:compileDebugJavaWithJavac
:app:mergeRBetaResources UP-TO-DATE
:app:processRBetaResources
:im:compileDebugJavaWithJavac UP-TO-DATE
:im:transformClassesWithRealmTransformerForDebug UP-TO-DATE
:im:transformClassesAndResourcesWithPrepareIntermediateJarsForDebug UP-TO-DATE
:wallet:javaPreCompileDebug UP-TO-DATE
:wallet:compileDebugJavaWithJavac UP-TO-DATE
:wallet:transformClassesAndResourcesWithPrepareIntermediateJarsForDebug UP-TO-DATE
:cityexpress:javaPreCompileDebug UP-TO-DATE
:cityexpress:compileDebugJavaWithJavac UP-TO-DATE
:cityexpress:transformClassesWithRealmTransformerForDebug UP-TO-DATE
:cityexpress:transformClassesAndResourcesWithPrepareIntermediateJarsForDebug UP-TO-DATE
:app:generateRBetaSources
:app:javaPreCompileRBeta UP-TO-DATE
:app:compileRBetaJavaWithJavac
*

警告: 来自注释处理程序 'com.tencent.tinker.anno.AnnotationProcessor' 的受支持 source 版本 'RELEASE_7' 低于 -source '1.8'
注: Creating file:/D:/workspace/MobileStation3.0/app/build/generated/source/apt/r/beta/com/transport/mobilestation/system/application/MobileStationApplication.java
注: 某些输入文件使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
注: 某些输入文件使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
1 个警告

:app:compileRBetaNdk NO-SOURCE
:app:compileRBetaSources
:app:mergeRBetaAssets UP-TO-DATE
:app:transformClassesWithStackFramesFixerForRBeta
:app:transformClassesWithDesugarForRBeta
:app:transformClassesWithRealmTransformerForRBeta
:app:transformClassesWithDexBuilderForRBeta
D8 is used to build dex.
:app:tinkerProcessRBetaMultidexKeep
try update tinker multidex keep proguard file with D:\workspace\MobileStation3.0\app\build\intermediates\tinker_intermediates\tinker_multidexkeep.pro

:app:transformClassesWithMultidexlistForRBeta
:app:transformDexArchiveWithDexMergerForRBeta
D8 is used to merge dex.
:app:transformNativeLibsWithMergeJniLibsForRBeta UP-TO-DATE
:app:processRBetaJavaRes NO-SOURCE
:app:transformResourcesWithMergeJavaResForRBeta UP-TO-DATE
:app:packageRBeta
:app:assembleRBeta
:app:tinkerPatchRBeta
-----------------------Tinker patch begin-----------------------
configuration: 
oldApk:D:\workspace\MobileStation3.0\app\build\bakApk/app-1108-16-59-10/MobileStation3.0_628_20171108_beta.apk
newApk:D:\workspace\MobileStation3.0\app\build\outputs\apk\r\beta\MobileStation3.0_628_20171108_beta.apk
outputFolder:D:\workspace\MobileStation3.0\app\build\outputs\apk\r/tinkerPatch/r/beta
isIgnoreWarning:false
isProtectedApp:false
7-ZipPath:C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.tencent.mm\SevenZip\1.1.10\4786999cf29d8e3b0c39a80359b5127bda36132a\SevenZip-1.1.10-windows-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.transport.mobilestation.system.application.MobileStationApplication
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:true

Analyze old and new apk files:
old apk: MobileStation3.0_628_20171108_beta.apk, size=28245769, md5=9667b86c9f3670bff963f5d484f4bc77
new apk: MobileStation3.0_628_20171108_beta.apk, size=28250933, md5=21291909dfbe0ebd2ade9c77315029da

Manifest has no changes, skip rest decode works.
UnZipping apk to D:\workspace\MobileStation3.0\app\build\outputs\apk\r\tinkerPatch\r\beta\MobileStation3.0_628_20171108_beta-old
UnZipping apk to D:\workspace\MobileStation3.0\app\build\outputs\apk\r\tinkerPatch\r\beta\MobileStation3.0_628_20171108_beta-new
Check for loader classes in dex: classes.dex

Warning:ignoreWarning is false, but we found all loader classes don't appear in old primary dex.
java.lang.RuntimeException: com.tencent.tinker.build.util.TinkerPatchException: all loader classes don't appear in old primary dex.
    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)
shwenzhang commented 6 years ago

com.tencent.tinker.loader.*类是否在旧包或者新包的主dex中?

shwenzhang commented 6 years ago

可以看看编译的输出,是否已经自动写入了tinker的规则 image

liangzhichao01 commented 6 years ago
qq20171109-114209 2x

在我的工程中没有找到multi-dex目录

liangzhichao01 commented 6 years ago

我使用的是compile 'com.android.support:multidex:1.0.1',没有干预分包过程,同时加了loader = [ //use sample, let BaseBuildInfo unchangeable with tinker "com.tencent.tinker.loader.", "com.tencent.tinker.", "tinker.sample.android.app.BaseBuildInfo" ] 但是就是没法把Tinker相关的class分到main dex中,请问还需要什么配置吗?

ftgqzhengkai commented 6 years ago

额,今天再试一次不知道为什么又好了。。。已经成功了!!!复现不了了,昨天怎么都不行、、 @shwenzhang

shwenzhang commented 6 years ago

"com.tencent.tinker." 不要加这个啊

shwenzhang commented 6 years ago

@ftgqzhengkai 没有应该是因为你的main sdk 大于21了

liangzhichao01 commented 6 years ago

@shwenzhang 我现在去掉了"com.tencent.tinker.*",但是依然还是不可以!请问这个分包我需要做干预吗?需要讲Tinker类手动添加到main dex中吗?

leytezhang commented 6 years ago

是怎么解决的

leytezhang commented 6 years ago

@shwenzhang

ghost commented 5 years ago

这个问题有解决方案么?同样的问题。

minSdkVersion 21 tinker 1.9.9 (1.9.11也试过) 集成了Bugly SDK

不能打补丁,multiDexKeepProguard和multiDexKeepFile都不起作用。 @shwenzhang