android android-studio android-gradle gitignore android-studio-3.1

android - ¿Debo agregar.idea/caches/build_file_checksums.ser a.gitignore?



android-studio android-gradle (2)

Actualicé mi Android Studio de 3.0.1 a 3.1 , y noté un archivo desconocido en mi proyecto existente:

.idea/caches/build_file_checksums.ser

No depende de si actualiza el complemento Android Gradle a la última versión 3.1.0 ; Una vez que abrí un proyecto existente en Android Studio 3.1, creó automáticamente el archivo build_file_checksums.ser , incluso si mantenía el proyecto para usar el complemento 3.0.1 anterior de la siguiente manera.

dependencies { classpath ''com.android.tools.build:gradle:3.0.1'' }

También creé un nuevo proyecto en Android Studio 3.1, y descubrí que el archivo build_file_checksums.ser se creó desde el principio.

Al momento de escribir, parece que no hay documentos oficiales sobre esto. Le agradecería si alguien pudiera encontrarlo.

Editado:

inspected el contenido con jdeserialize-1.2 , ya que Samuel señaló que parece incluir algunas rutas del sistema.

$ 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 $

Puede ver las siguientes cadenas en java.util.HashMap .

  • "settings.gradle"
  • "build.gradle"
  • "local.properties"
  • "/Users/qtmfld/.gradle/gradle.properties"
  • "gradle.properties"
  • "app / build.gradle"

Wh0 ha aclarado el mismo resultado en Android Studio 3.2 Preview.
https://wh0.github.io/2018/02/17/build-file-checksums-ser.html


Deberías agregarlo a .gitignore . No lo incluyas en tu git add .

En la ventana del proyecto del lado izquierdo,

( a ) cambie la vista de Android a la vista de proyecto de Android , con el menú desplegable.
( b ) Puede ver build_file_checksums.ser en la carpeta .idea/caches .
( c ) Abra .gitignore del directorio raíz del proyecto. (No lo confunda con .gitignore del módulo de la aplicación ).

En el contenido del lado derecho .gitignore ,

( d ) agregue /.idea/caches/build_file_checksums.ser .

La guía de JetBrain le dijo que debería compartir

  • Todos los archivos en el directorio .idea en la raíz del proyecto, excepto los archivos workspace.xml y task.xml que almacenan configuraciones específicas del usuario

y también decía

Puede considerar no compartir lo siguiente:

  • archivos .iml para los proyectos basados ​​en Gradle o Maven , ya que estos archivos se generarán en la importación
  • archivo gradle.xml , vea esta discusión
  • carpeta de diccionarios de usuario (para evitar conflictos si otro desarrollador tiene el mismo nombre)
  • Archivos XML en .idea / bibliotecas en caso de que se generen a partir del proyecto Gradle o Maven

Por lo tanto, el .gitignore predeterminado para nuevos proyectos en Android Studio es:

*.iml .gradle /local.properties /.idea/libraries /.idea/modules.xml /.idea/workspace.xml .DS_Store /build /captures .externalNativeBuild

Pero, el archivo build_file_checksums.ser es un objeto serializado de Java, que contiene hash y marca de tiempo de:

  • "settings.gradle"
  • "build.gradle"
  • "local.properties"
  • "/ Usuarios / ( Nombre de usuario ) /. Gradle / gradle.properties"
  • "gradle.properties"
  • "app / build.gradle"

Entonces, parece que issuetracker.google.com/issues/77544553 era la prioridad P2 y la gravedad S2, y ya ha sido aceptado y solucionado. Espero con ansias el lanzamiento futuro, en el que el .gitignore predeterminado incluye

/.idea/caches/build_file_checksums.ser


Todos los archivos en sus carpetas .idea están relacionados con su IDE (estudio de Android en este caso). Y como dijiste, estos archivos se crean en la apertura del proyecto. Por lo tanto, debe agregar este archivo a su .gitignore porque estos archivos pueden contener algunos contenidos que no son necesarios, como su ruta absoluta.