Android gradle incremental compile not working

I used gradle 3.5 and gradle:2.2.0 plugin to compile my android project. I found that compileDebugJavaWithJavac task delete all the class file last compiled and rebuild again although config option incremental was true and only one file changed.

Environment:
Win7, JDK1.8, Gradle3.5, gradle plugin 2.2.0

build.gradle:

android {
    compileOptions.incremental = true
}

afterEvaluate {
    tasks.withType(JavaCompile) {
        options.incremental = true // one flag, and things will get MUCH faster
        options.fork = true
    }
}

The log:

Executing tasks: [:app:assembleGongDebug]

16:54:40.804 [INFO]
[org.gradle.execution.taskgraph.AbstractTaskPlanExecutor]
:app:compileGongDebugJavaWithJavac (Thread[Task worker,5,main])
started. 16:54:40.804 [LIFECYCLE] [class
org.gradle.internal.buildevents.TaskExecutionLogger]
:app:compileGongDebugJavaWithJavac 16:54:40.804 [DEBUG]
[org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter]
Starting to execute task ‘:app:compileGongDebugJavaWithJavac’
16:54:40.804 [INFO]
[org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter]
Putting task artifact state for task
‘:app:compileGongDebugJavaWithJavac’ into context took 0.0 secs.
16:54:40.807 [DEBUG]
[org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter]
Determining if task ‘:app:compileGongDebugJavaWithJavac’ is up-to-date
16:54:40.807 [INFO]
[org.gradle.api.internal.changedetection.rules.TaskTypeTaskStateChanges]
Task :app:compileGongDebugJavaWithJavac class loader hash:
820a57cd9677b8467af4a3c9cff73e36 16:54:40.807 [INFO]
[org.gradle.api.internal.changedetection.rules.TaskTypeTaskStateChanges]
Task :app:compileGongDebugJavaWithJavac actions class loader hashes:
[1f83c133a7c72a7a89ebf834339065be, 820a57cd9677b8467af4a3c9cff73e36,
750e1d72030581ace81f7325929812f4, 41621835a1ddfd325406e64eb3109d65]

16:54:41.018 [INFO]
[org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter]
Executing task ‘:app:compileGongDebugJavaWithJavac’ (up-to-date check
took 0.212 secs) due to: Input property ‘source’ file
D:/project_dir/app/build/intermediates/merged/main/java/com/gc/controllers/home/RecommendFragment.java
has changed. 16:54:41.019 [DEBUG]
[org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter]
Executing actions for task ‘:app:compileGongDebugJavaWithJavac’.
16:54:41.021 [INFO] [org.gradle.api.Task] Compiling with source level
1.7 and target level 1.7. 16:54:41.024 [INFO] [org.gradle.cache.internal.DefaultCacheAccess] Creating new cache for
classAnalysis, path
D:/project_dir.gradle/3.5/javaCompile/classAnalysis.bin, access
[email protected] 16:54:41.024
[DEBUG]
[org.gradle.cache.internal.LockOnDemandCrossProcessCacheAccess]
Acquiring file lock for Java compile cache
(D:/project_dir.gradle/3.5/javaCompile) 16:54:41.024 [DEBUG]
[org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire
exclusive lock on Java compile cache
(D:/project_dir.gradle/3.5/javaCompile). 16:54:41.025 [DEBUG]
[org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on
Java compile cache (D:/project_dir.gradle/3.5/javaCompile).
16:54:41.025 [INFO] [org.gradle.cache.internal.DefaultCacheAccess]
Creating new cache for jarAnalysis, path
D:/project_dir.gradle/3.5/javaCompile/jarAnalysis.bin, access
[email protected] 16:54:41.025
[INFO] [org.gradle.cache.internal.DefaultCacheAccess] Creating new
cache for taskJars, path
D:/project_dir.gradle/3.5/javaCompile/taskJars.bin, access
[email protected] 16:54:41.025
[INFO] [org.gradle.cache.internal.DefaultCacheAccess] Creating new
cache for taskHistory, path
D:/project_dir.gradle/3.5/javaCompile/taskHistory.bin, access
[email protected] 16:54:41.029
[INFO]
[org.gradle.api.internal.tasks.compile.incremental.jar.JarClasspathSnapshotMaker]
Created jar classpath snapshot for incremental compilation in 0.003
secs. 16:54:41.029 [DEBUG]
[org.gradle.api.internal.tasks.compile.incremental.jar.JarClasspathSnapshotMaker]
While calculating jar classpath snapshot 0 duplicate classes were
found: [].

16:54:41.122 [DEBUG] [org.gradle.api.internal.file.delete.Deleter] Deleting
D:/project_dir/app/build/intermediates/classes/Gong/debug/com/gc/adapters/Adapter.class
16:54:41.124 [DEBUG] [org.gradle.api.internal.file.delete.Deleter]
Deleting
D:/project_dir/app/build/intermediates/classes/Gong/debug/com/gc/adapters/ListAdapter.class
about 2000+ files 16:54:44.045 [DEBUG]
[org.gradle.api.internal.file.delete.Deleter] Deleting
D:/project_dir/app/build/intermediates/classes/Gong/debug/com/gc/widget/web/WebView.class

16:54:44.140 [DEBUG] [org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler]
Compiler arguments: -source 1.7 -target 1.7 -d
D:/project_dir/app/build/intermediates/classes/Gong/debug -encoding
UTF-8
-bootclasspath D:/android/platforms/android-23/android.jar -g -sourcepath -proc:none -XDuseUnsharedTable=true
-classpath D:/Program Files (x86)/gradle/caches/modules-2/files-2.1/de.javakaffee/kryo-serializers/0.33/e9639b86ee1ea66c3fcb92a339be71483d75856d/kryo-serializers-0.33.jar;…;
-s D:/project_dir/app/build/generated/source/apt/Gong/debug D:/project_dir/app/build/intermediates/merged/main/java/com/gc/adapters/Adapter.java
D:/project_dir/app/build/intermediates/merged/main/java/com/gc/adapters/ListAdapter.java
about 2000+ files
D:/project_dir/app/build/intermediates/merged/main/java/com/gc/widget/web/WebView.java

16:54:44.141 [DEBUG] [org.gradle.workers.internal.WorkerDaemonStarter]
Starting Gradle worker daemon with fork options
DaemonForkOptions{minHeapSize=null, maxHeapSize=null, jvmArgs=[],
classpath=[]}. 16:54:44.143 [DEBUG]
[org.gradle.internal.remote.internal.inet.TcpIncomingConnector]
Listening on [4fe744b3-8da9-4004-8963-7a64adb552c0 port:58507,
addresses:[/127.0.0.1, /0:0:0:0:0:0:0:1]]. 16:54:44.144 [DEBUG]
[org.gradle.process.internal.worker.DefaultWorkerProcessBuilder]
Creating Gradle Worker Daemon 1 16:54:44.144 [DEBUG]
[org.gradle.process.internal.worker.DefaultWorkerProcessBuilder] Using
application classpath [] 16:54:44.145 [DEBUG]
[org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire
shared lock on cache directory workerMain (D:/Program Files
(x86)/gradle/caches/3.5/workerMain). 16:54:44.146 [DEBUG]
[org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on
cache directory workerMain (D:/Program Files
(x86)/gradle/caches/3.5/workerMain). 16:54:44.146 [DEBUG]
[org.gradle.process.internal.worker.child.WorkerProcessClassPathProvider]
Using worker process classpath: [D:/Program Files
(x86)/gradle/caches/3.5/workerMain/gradle-worker.jar] 16:54:44.147
[DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state
to: STARTING 16:54:44.147 [DEBUG]
[org.gradle.process.internal.DefaultExecHandle] Waiting until process
started: Gradle Worker Daemon 1. 16:54:44.162 [DEBUG]
[org.gradle.process.internal.DefaultExecHandle] Changing state to:
STARTED 16:54:44.162 [INFO]
[org.gradle.process.internal.DefaultExecHandle] Successfully started
process ‘Gradle Worker Daemon 1’ 16:54:44.162 [DEBUG]
[org.gradle.process.internal.ExecHandleRunner] waiting until streams
are handled… 16:54:44.552 [DEBUG]
[org.gradle.process.internal.worker.DefaultWorkerProcess] Received
connection
org.gradl[email protected]25db517b
from Gradle Worker Daemon 16:54:44.558 [INFO]
[org.gradle.workers.internal.WorkerDaemonStarter] Started Gradle
worker daemon (0.416 secs) with fork options
DaemonForkOptions{minHeapSize=null, maxHeapSize=null, jvmArgs=[],
classpath=[]}. 16:54:44.558 [DEBUG]
[org.gradle.internal.operations.DefaultBuildOperationWorkerRegistry]
Worker root.89.90 started (1 in use). 16:54:44.592 [DEBUG]
[org.gradle.process.internal.worker.child.ActionExecutionWorker]
Starting Gradle Worker Daemon 1. 16:54:44.616 [INFO]
[org.gradle.internal.nativeintegration.services.NativeServices]
Initialized native services in: D:/Program Files (x86)/gradle/native
16:54:44.706 [INFO] [org.gradle.workers.internal.WorkerDaemonServer]
Executing org.gradle.api.internal.tasks.compile.JdkJavaCompiler in
worker daemon. 16:54:44.706 [INFO]
[org.gradle.api.internal.tasks.compile.JdkJavaCompiler] Compiling with
JDK Java compiler API. 16:54:51.788 [DEBUG]
[org.gradle.launcher.daemon.server.Daemon]
DaemonExpirationPeriodicCheck running 16:54:53.899 [INFO]
[org.gradle.workers.internal.WorkerDaemonServer] Successfully executed
org.gradle.api.internal.tasks.compile.JdkJavaCompiler in worker
daemon. 16:54:53.901 [DEBUG]
[org.gradle.launcher.daemon.server.SynchronizedDispatchConnection]
thread 15621: dispatching class
org.gradle.launcher.daemon.protocol.BuildEvent 16:54:53.901 [DEBUG]
[org.gradle.internal.operations.DefaultBuildOperationWorkerRegistry]
Worker root.89.90 completed (1 in use)

16:54:53.901 [INFO] [org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler]
Incremental compilation of 971 classes completed in 12.876 secs.

16:54:53.902 [DEBUG]
[org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler]
Recompiled classes [com.gc.controllers.home.RecommendFragment …] all
classes 16:54:54.224 [INFO]
[org.gradle.api.internal.tasks.compile.incremental.ClassSetAnalysisUpdater]
Class dependency analysis for incremental compilation took 0.321 secs.
16:54:54.224 [INFO]
[org.gradle.api.internal.tasks.compile.incremental.jar.JarClasspathSnapshotMaker]
Written jar classpath snapshot for incremental compilation in 0.0
secs. 16:54:54.224 [DEBUG]
[org.gradle.cache.internal.btree.BTreePersistentIndexedCache] Opening
cache taskHistory.bin
(D:/project_dir.gradle/3.5/javaCompile/taskHistory.bin) 16:54:54.224
[DEBUG]
[org.gradle.launcher.daemon.server.SynchronizedDispatchConnection]
thread 15621: dispatching class
org.gradle.launcher.daemon.protocol.BuildEvent 16:54:54.224 [DEBUG]
[org.gradle.launcher.daemon.server.SynchronizedDispatchConnection]
thread 15621: dispatching class
org.gradle.launcher.daemon.protocol.BuildEvent 16:54:54.246 [DEBUG]
[org.gradle.cache.internal.btree.BTreePersistentIndexedCache] Opening
cache taskJars.bin
(D:/project_dir.gradle/3.5/javaCompile/taskJars.bin) 16:54:54.273
[DEBUG]
[org.gradle.launcher.daemon.server.SynchronizedDispatchConnection]
thread 15621: dispatching class
org.gradle.launcher.daemon.protocol.BuildEvent 16:54:54.370 [DEBUG]
[org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter]
Removed task artifact state for from context. 16:54:54.370 [DEBUG]
[org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter]
Finished executing task ‘:app:compileGongDebugJavaWithJavac’
16:54:54.371 [DEBUG]
[org.gradle.launcher.daemon.server.SynchronizedDispatchConnection]
thread 15621: dispatching class
org.gradle.launcher.daemon.protocol.BuildEvent 16:54:54.371 [INFO]
[org.gradle.execution.taskgraph.AbstractTaskPlanExecutor]
:app:compileGongDebugJavaWithJavac (Thread[Task worker,5,main])
completed. Took 13.567 secs. 16:54:54.371 [DEBUG]
[org.gradle.internal.operations.DefaultBuildOperationWorkerRegistry]
Worker root.89 completed (0 in use) 16:54:54.371 [DEBUG]
[org.gradle.internal.operations.DefaultBuildOperationWorkerRegistry]
Worker root.91 started (1 in use).