qtm*_*fld 54 android gitignore android-studio android-gradle-plugin android-studio-3.1
我将Android Studio 从3.0.1更新到3.1,并注意到我现有项目中的一个不熟悉的文件:
.idea/caches/build_file_checksums.ser
Run Code Online (Sandbox Code Playgroud)
它取决于您是否将Android Gradle插件更新到最新的3.1.0 ; 一旦我在Android Studio 3.1中打开现有项目,它就会自动创建该文件build_file_checksums.ser,即使我让项目使用以前的3.0.1插件也是如此.
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
}
Run Code Online (Sandbox Code Playgroud)
我还在Android Studio 3.1中创建了一个新项目,发现该文件build_file_checksums.ser是从头开始创建的.
在撰写本文时,似乎没有正式文件.如果有人能找到它,我将不胜感激.
我用jdeserialize-1.2 检查了内容,因为Samuel指出它似乎包含了一些系统路径.
$ java -jar ~/Downloads/jdeserialize-1.2.jar .idea/caches/build_file_checksums.ser
read: com.android.tools.idea.gradle.project.ProjectBuildFileChecksums _h0x7e0002 = r_0x7e0000;
//// BEGIN stream content output
com.android.tools.idea.gradle.project.ProjectBuildFileChecksums _h0x7e0002 = r_0x7e0000;
//// END stream content output
//// BEGIN class declarations (excluding array classes)
class java.util.HashMap implements java.io.Serializable {
float loadFactor;
int threshold;
}
class com.android.tools.idea.gradle.project.ProjectBuildFileChecksums implements java.io.Serializable {
long myLastGradleSyncTimestamp;
java.util.Map myFileChecksums;
}
//// END class declarations
//// BEGIN instance dump
[instance 0x7e0004: 0x7e0003/java.util.HashMap
object annotations:
java.util.HashMap
[blockdata 0x00: 8 bytes]
[String 0x7e0005: "settings.gradle"]
[array 0x7e0007 classdesc [cd 0x7e0006: name [B uid -5984413125824719648]: [arraycoll sz 16 -89, -2, 26, -61, -111, 105, -75, -27, 40, 90, 94, 83, 102, 47, 37, 27]
[String 0x7e0008: "build.gradle"]
[array 0x7e0009 classdesc [cd 0x7e0006: name [B uid -5984413125824719648]: [arraycoll sz 16 70, 101, -14, 32, 100, -60, -85, -103, 73, -86, 15, 54, -45, 125, 50, 39]
[String 0x7e000a: "local.properties"]
[array 0x7e000b classdesc [cd 0x7e0006: name [B uid -5984413125824719648]: [arraycoll sz 16 -107, 64, 60, -33, -18, 18, 56, -84, 15, 0, -86, -73, -27, 127, -94, 27]
[String 0x7e000c: "/Users/qtmfld/.gradle/gradle.properties"]
[array 0x7e000d classdesc [cd 0x7e0006: name [B uid -5984413125824719648]: [arraycoll sz 16 -44, 29, -116, -39, -113, 0, -78, 4, -23, -128, 9, -104, -20, -8, 66, 126]
[String 0x7e000e: "gradle.properties"]
[array 0x7e000f classdesc [cd 0x7e0006: name [B uid -5984413125824719648]: [arraycoll sz 16 16, -69, 118, 80, -49, -19, 41, -8, 56, -86, 64, -63, 112, -14, 98, 47]
[String 0x7e0010: "app/build.gradle"]
[array 0x7e0011 classdesc [cd 0x7e0006: name [B uid -5984413125824719648]: [arraycoll sz 16 -3, -11, 63, -26, 67, -41, -100, 33, 85, -59, -49, -3, -90, 53, -106, 94]
field data:
0x7e0003/java.util.HashMap:
threshold: 12
loadFactor: 0.75
]
[instance 0x7e0002: 0x7e0000/com.android.tools.idea.gradle.project.ProjectBuildFileChecksums
field data:
0x7e0000/com.android.tools.idea.gradle.project.ProjectBuildFileChecksums:
myFileChecksums: r0x7e0004: java.util.HashMap _h0x7e0004 = r_0x7e0003;
myLastGradleSyncTimestamp: 1522297024540
]
//// END instance dump
$
Run Code Online (Sandbox Code Playgroud)
您可以在其中看到以下字符串java.util.HashMap.
Wh0在Android Studio 3.2 Preview上澄清了相同的结果.
https://wh0.github.io/2018/02/17/build-file-checksums-ser.html
qtm*_*fld 27
你应该把它添加到.gitignore.不要把它包括在你的git add.
在左侧的项目窗口中,
(a)使用下拉菜单将Android视图更改为Android项目视图.
(b)你可以build_file_checksums.ser在文件夹中看到.idea/caches.
(c)打开.gitignore项目根目录.(不要混淆.gitignore的的应用模块.)
在右侧.gitignore内容中,
(d)补充/.idea/caches/build_file_checksums.ser.
JetBrain的指南告诉你应该分享
- 项目根目录下的.idea目录下的所有文件,除了存储用户特定设置的workspace.xml和tasks.xml文件
它也说
您可以考虑不要分享以下内容:
- 基于Gradle或Maven的项目的.iml文件,因为这些文件将在导入时生成
- gradle.xml文件,请参阅此讨论
- 用户词典文件夹(以避免在其他开发人员具有相同名称时发生冲突)
- 它们是从Gradle或Maven项目生成的.idea/libraries下的XML文件
因此,.gitignoreAndroid Studio中新项目的默认设置为:
*.iml
.gradle
/local.properties
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
.DS_Store
/build
/captures
.externalNativeBuild
Run Code Online (Sandbox Code Playgroud)
但是,该build_file_checksums.ser文件是Java序列化对象,其中包含哈希和时间戳:
因此,似乎问题是优先级P2和严重性S2,并且已经被接受并修复.我期待未来的发布,默认.gitignore包括
/.idea/caches/build_file_checksums.ser
Run Code Online (Sandbox Code Playgroud)
Ito*_*oun 21
.idea文件夹中的所有文件都与IDE相关(在本例中为Android studio).正如您所说,这些文件是在项目开始时创建的.因此,您应该将此文件添加到.gitignore,因为这些文件可能包含一些不必要的内容,如绝对路径.
| 归档时间: |
|
| 查看次数: |
12356 次 |
| 最近记录: |