有清洁和重建之间的Android Studio中2.3.3没有区别,所以为什么在生成菜单上这两个选项

2019-09-28 01:00发布

为什么CleanRebuild在AS 2.3.3相同的,那么为什么在发现这两个选项Build菜单?

正如解释在这里 ,有之间的AS 2.3.3 无差异 Build > CleanBuild > Rebuild 。 只要检查Event Log验证了。

那么,为什么不修改AS 2.3.3 Build菜单中有一个选择,例如, Clean and Rebuild 。 这是一个有趣的历史需要注意的是Clean用做一些来自不同的Rebuild ,因此这可能证明无论是在菜单中有,但它是混乱。

需要注意的是( 推测 )在Visual Studio中, CleanRebuild方案做不同的事情,毫无疑问,就像下面的1.0一样。


PS 这和这一点的是,摇篮4.1并不总是解释在“预期”命令的命令。 这是否说明为什么CleanRebuild 必须是一样的吗?

Answer 1:

我用干净的更新的R值,而我在编码的中间来的。 我不想知道,在我未完成的代码中的错误,我只是想将R文件链接是最新的。

在另一方面重建列出了所有的错误。

所以在幕后,他们可以是相同的,但结果都以不同的方式呈现给用户。



Answer 2:

@Sam是正确的。 展望只在Event log是相当肤浅的,因为它只记录事件,而不是细节。 望着Gradle console澄清这一切:

这里是Clean ,即使在我编写代码中的错误:

Executing tasks: 
[clean, :app:generateDebugSources, :app:mockableAndroidJar,
        :app:prepareDebugUnitTestDependencies,             
        :app:generateDebugAndroidTestSources,
        :app:compileDebugSources, :app:compileDebugUnitTestSources,
        :app:compileDebugAndroidTestSources]

Configuration on demand is an incubating feature.

Incremental java compilation is an incubating feature.
:clean
:app:clean
:app:    preBuild UP-TO-DATE
(MY NOTE ^^^^^^^^
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportAnimatedVectorDrawable2600Alpha1Library
:app:prepareComAndroidSupportAppcompatV72600Alpha1Library
:app:prepareComAndroidSupportConstraintConstraintLayout102Library
:app:prepareComAndroidSupportSupportCompat2600Alpha1Library
:app:prepareComAndroidSupportSupportCoreUi2600Alpha1Library
:app:prepareComAndroidSupportSupportCoreUtils2600Alpha1Library
:app:prepareComAndroidSupportSupportFragment2600Alpha1Library
:app:prepareComAndroidSupportSupportMediaCompat2600Alpha1Library
:app:prepareComAndroidSupportSupportV42600Alpha1Library
:app:prepareComAndroidSupportSupportVectorDrawable2600Alpha1Library
:app:prepareDebugDependencies
:app:compileDebugAidl
:app:compileDebugRenderscript
:app:generateDebugBuildConfig
:app:generateDebugResValues
:app:generateDebugResources
:app:mergeDebugResources
:app:processDebugManifest
:app:processDebugResources
:app:generateDebugSources
:app:mockableAndroidJar
:app:preDebugUnitTestBuild UP-TO-DATE
:app:prepareDebugUnitTestDependencies
:app:preDebugAndroidTestBuild UP-TO-DATE
:app:prepareComAndroidSupportTestEspressoEspressoCore222Library
:app:prepareComAndroidSupportTestEspressoEspressoIdlingResource222Library
:app:prepareComAndroidSupportTestExposedInstrumentationApiPublish05Library
:app:prepareComAndroidSupportTestRules05Library
:app:prepareComAndroidSupportTestRunner05Library
:app:prepareDebugAndroidTestDependencies
:app:compileDebugAndroidTestAidl
:app:processDebugAndroidTestManifest
:app:compileDebugAndroidTestRenderscript
:app:generateDebugAndroidTestBuildConfig
:app:generateDebugAndroidTestResValues
:app:generateDebugAndroidTestResources
:app:mergeDebugAndroidTestResources
:app:processDebugAndroidTestResources
:app:generateDebugAndroidTestSources

Rebuild做所有PLUS以下,如果有在代码中的错误:

:app:incrementalDebugJavaCompilationSafeguard
:app:javaPreCompileDebug
:app:compileDebugJavaWithJavac
:app:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).

C:\Users\Dov\Desktop\SQhell\app\src\main\java\com\dslomer64\sqhell\MainActivity.java:221: error: not a statement
x       return true;
^
C:\Users\Dov\Desktop\SQhell\app\src\main\java\com\dslomer64\sqhell\MainActivity.java:221: error: ';' expected
x       return true;
 ^
2 errors

:app:compileDebugJavaWithJavac FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 16.398 secs

如果没有错误代码, Rebuild做到这一点:

:app:compileDebugNdk UP-TO-DATE
:app:compileDebugSources
:app:incrementalDebugUnitTestJavaCompilationSafeguard UP-TO-DATE
:app:javaPreCompileDebugUnitTest
:app:compileDebugUnitTestJavaWithJavac UP-TO-DATE
:app:processDebugJavaRes UP-TO-DATE
:app:processDebugUnitTestJavaRes UP-TO-DATE
:app:compileDebugUnitTestSources UP-TO-DATE
:app:incrementalDebugAndroidTestJavaCompilationSafeguard
:app:javaPreCompileDebugAndroidTest
:app:compileDebugAndroidTestJavaWithJavac
:app:compileDebugAndroidTestNdk UP-TO-DATE
:app:compileDebugAndroidTestSources

BUILD SUCCESSFUL

Total time: 26.83 secs

在任何情况下, Build进行Clean ,然后编译的代码,终止如果发现错误(和列出); 否则,做一个完整的编译。

所以, Clean DOES从不同的Rebuild

(这意味着一些其他职位,如在问题中列出的一个,必须进行修改。)



文章来源: There is no difference in Android Studio 2.3.3 between Clean and Rebuild, so why have both options in Build menu?