sách gpt4 ai đã đi

android - 运行 lint[Flavor][Variant] 和只运行 lint 有什么区别?

In lại 作者:行者123 更新时间:2023-11-29 02:33:43 27 4
mua khóa gpt4 Nike

我有一个带有 gradle 的 Android 项目。虽然 gradle 插件是 2.x.x,但运行 ./gradlew lint 的时间大约为 4 分钟。我已经将项目升级到 gradle plugin 3.0.1,现在时间大约是 24 分钟。我有四种口味和两种变体(调试和发布)。有趣的是,当我尝试运行 ./gradlew lint[Flavor][Variant] 时,8 种组合中的每一种都需要大约 30 秒。

为什么为每种风格和变体单独运行 lint 需要合理的时间,而为所有风格和变体运行一个命令需要 20 多分钟?有什么不同?为什么 lint 使用 gradle 插件 2.x.x 并在升级后变得迟钝?

我尝试使用 --debug 标志运行。 lint 做了一些工作,然后它决定休息很长时间,然后再做一些工作。它几乎在整个构建时间都是空闲的。

我试着用谷歌搜索类似“(gradle) lint stuck|slow”的东西,似乎人们有时会遇到缓慢的 gradle 构建,这可以通过启用离线模式、并行构建、运行守护进程来解决。但这里不是这种情况。

对于 flavor 和变体的每种组合,两种情况下发现的问题数量相同

java.lang.OutOfMemoryError: Java heap space
at com.google.common.io.ByteStreams.createBuffer(ByteStreams.java:56)
at com.google.common.io.ByteStreams.copy(ByteStreams.java:103)
at com.google.common.io.ByteStreams.toByteArray(ByteStreams.java:166)
at com.android.tools.lint.client.api.ClassEntry.addEntries(ClassEntry.java:195)
at com.android.tools.lint.client.api.ClassEntry.fromClassPath(ClassEntry.java:120)
at com.android.tools.lint.client.api.LintClient.createSuperClassMap(LintClient.kt:1001)
at com.android.tools.lint.detector.api.Project.getSuperClassMap(Project.java:1471)
at com.android.tools.lint.client.api.LintClient.getSuperClass(LintClient.kt:968)
at com.android.tools.lint.client.api.LintDriver$LintClientWrapper.getSuperClass(LintDriver.kt:2186)
at com.android.tools.lint.client.api.LintDriver.getSuperClass(LintDriver.kt:1141)
at com.android.tools.lint.checks.InvalidPackageDetector.checkClass(InvalidPackageDetector.java:173)
at com.android.tools.lint.client.api.AsmVisitor.runClassDetectors(AsmVisitor.java:151)
at com.android.tools.lint.client.api.LintDriver.runClassDetectors(LintDriver.kt:1325)
at com.android.tools.lint.client.api.LintDriver.checkClasses(LintDriver.kt:1210)
at com.android.tools.lint.client.api.LintDriver.runFileDetectors(LintDriver.kt:1037)
at com.android.tools.lint.client.api.LintDriver.checkProject(LintDriver.kt:882)
at com.android.tools.lint.client.api.LintDriver.analyze(LintDriver.kt:385)
at com.android.tools.lint.LintCliClient.run(LintCliClient.java:155)
at com.android.build.gradle.internal.LintGradleClient.run(LintGradleClient.java:197)
at com.android.build.gradle.tasks.LintBaseTask.runLint(LintBaseTask.java:198)
at com.android.build.gradle.tasks.LintGlobalTask.lintAllVariants(LintGlobalTask.java:91)
at com.android.build.gradle.tasks.LintGlobalTask.lint(LintGlobalTask.java:70)
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)

这是在 ./gradlew lint 完成之前打印的内容。可能它会进行一些递归 20 分钟,当它用完内存时会给出结果,几分钟后我也会看到一些闪烁,就像结果已经准备好,但任务又继续了 20 分钟,异常终止了它。

1 Câu trả lời

Bạn có thể sử dụngdry-run 看看有什么不同,只需将-tôi 作为您的gradle 命令的参数

./gradlew lint[Flavor][Variant] -m

./gradlew lint -m

现在您可以比较这两个命令的结果,您可以了解所有 gradle 任务正在执行什么。

此外,为了识别哪个任务花费了最多的时间, bạn có thể sử dụng--profile

./gradlew lint[Flavor][Variant] --profile

./gradlew lint --profile

关于android - 运行 lint[Flavor][Variant] 和只运行 lint 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48210210/

27 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com