Android Studio .0.1から3.1 を更新しましたが、既存のプロジェクトに見慣れないファイルがあることに気付きました。
.idea/caches/build_file_checksums.ser
Android Gradleプラグインを 最新の3.1. ;に更新するかどうかには依存しません。 Android Studio 3.1で既存のプロジェクトを開くと、次のように以前の3.0.1プラグインを使用するようにプロジェクトを保持していても、ファイルbuild_file_checksums.ser
が自動的に作成されました。
dependencies {
classpath 'com.Android.tools.build:gradle:3.0.1'
}
また、Android Studio 3.1で新しいプロジェクトを作成しましたが、build_file_checksums.ser
ファイルが最初から作成されていることがわかりました。
執筆時点では、これに関する公式文書はないようです。誰かがそれを見つけることができれば、私はそれを感謝します。
I inspectedjdeserialize-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
$
Java.util.HashMap
には次の文字列が表示されます。
Wh は、Android Studio 3.2プレビューで同じ結果を明確にしました。
https://wh0.github.io/2018/02/17/build-file-checksums-ser.html
.ideaフォルダー内のすべてのファイルは、IDE(この場合はAndroidスタジオ)に関連しています。そして、あなたが言ったように、このファイルはプロジェクトの開始時に作成されます。したがって、これらのファイルには絶対パスのような不要なコンテンツが含まれている可能性があるため、このファイルを.gitignoreに追加する必要があります。
.gitignore
に追加する必要があります。 git add
に含めないでください。
左側のProjectウィンドウで、
(a)プルダウンメニューでAndroidビューを Androidプロジェクトビュー に変更します。
(b)build_file_checksums.ser
フォルダー.idea/caches
で確認できます。
(c)プロジェクトルートディレクトリの.gitignore
を開きます。 (appモジュールの.gitignore
と混同しないでください。)
右側の.gitignore
コンテンツで、
(d)/.idea/caches/build_file_checksums.ser
を追加します。
JetBrainのガイド あなたは共有すべきだと言った
- 。ideaプロジェクトルートのディレクトリにあるすべてのファイルexceptworkspace.xmlおよびtasks.xmlファイルユーザー固有の設定を保存する
そしてまたそれは言った
共有しない以下を検討できます。
- 。imlGradleまたはMavenベースのプロジェクトのファイル。これらのファイルはインポート時に生成されるため
- gradle.xml file、この説明を参照
- user dictionaries folder(他の開発者が同じ名前を持っている場合の競合を避けるため)
- 。idea/librariesの場合のXMLファイルGradleまたはMavenから生成プロジェクト
したがって、Android Studioの新しいプロジェクトのデフォルト.gitignore
は次のとおりです。
*.iml
.gradle
/local.properties
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
.DS_Store
/build
/captures
.externalNativeBuild
ただし、build_file_checksums.ser
ファイルはJavaシリアル化されたオブジェクトであり、次のハッシュとタイムスタンプが含まれています。
つまり、 問題 は優先度P2および重大度S2であり、すでに受け入れられ修正されているようです。デフォルトの.gitignore
に含まれる将来のリリースを楽しみにしています
/.idea/caches/build_file_checksums.ser