Guía de Instalación y Configuración para Proyectos Flutter

Esta guía reúne los pasos y configuraciones específicas que necesita cada proyecto Flutter para garantizar una instalación sin errores y un entorno de desarrollo compatible.

App Familia (Flutter)

Todos los repositorios se guardan en:
C:\\overskull\\

🧩 1. Versiones necesarias para este proyecto

Herramienta Versión
Flutter 3.29.3
Dart 3.3.x (incluido en Flutter 3.19.6)
JDK Amazon Corretto 11
Gradle Automático según Flutter

📌 Leer este punto antes de continuar.

Este proyecto NO funciona con Java 17 ni con Flutter global.


🔽 2. Descargar Flutter (versión obligatoria del proyecto)

Descargar Flutter 3.19.6 (stable) desde:

https://docs.flutter.dev/release/archive

Guardar todas las versiones de Flutter en:

C:\\overskull\\SDK\\

Ejemplo:

C:\\overskull\\SDK\\flutter_windows_3.29.3-stable

📌 No usar Flutter global del sistema.


🔧 3. Instalar JDK 11 (Amazon Corretto)

Descargar desde:

https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/downloads-list.html

Guardar todas las versiones de Java en:

C:\\overskull\\java\\

Ejemplo:

C:\\overskull\\java\\amazon-corretto-11

🚀 4. Clonar el proyecto

git clone git@storegit.overskull.com:shalom-over-app/shalom_familia.git
cd shalom_familia

📁 5. build.gradle (revisión inicial necesaria para arrancar el proyecto)

Ruta:

C:\\overskull\\shalom_familia\\android\\app\\build.gradle

Ejemplo de referencia:

plugins {
    id "com.android.application"
    id "kotlin-android"
    id "dev.flutter.flutter-gradle-plugin"
}

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android {

    compileSdkVersion 31

    namespace "com.overskull.shalom.familia"
    compileSdkVersion flutter.compileSdkVersion
    //ndkVersion flutter.ndkVersion
    ndkVersion "25.2.9519653"
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = '1.8'
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (<https://developer.android.com/studio/build/application-id.html>).
        applicationId "com.overskull.shalom.familia"
        // You can update the following values to match your application needs.
        // For more information, see: <https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration>.
        minSdkVersion 24
        targetSdkVersion 35
        versionCode 148
        versionName "1.4.8"
    }
    signingConfigs {
    release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
            storePassword keystoreProperties['storePassword']
        }
    }

    buildTypes {
        release {
            
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.release
        }
    }

    packagingOptions {
        jniLibs {
            useLegacyPackaging = false
        }
        doNotStrip "**/*.so"
    }
}

flutter {
    source '../..'
}

dependencies {}

📌 Si este archivo tiene errores, la app no compila.


⚙️ 6. Configurar JDK en gradle.properties

Editar:

C:\\overskull\\shalom_familia\\android\\gradle.properties
org.gradle.jvmargs=-Xmx4608m
android.useAndroidX=true
android.enableJetifier=true
org.gradle.java.home=C:/Program Files/Amazon Corretto/jdk11.0.29_7
android.enableAppCompileTimeRClass=true
android.bundle.enableUncompressedNativeLibs=false

🧰 7. Configurar la versión de Flutter usada por el proyecto

C:\\overskull\\shalom_familia\\.vscode\\settings.json
{
  "dart.flutterSdkPath": "C:/SDK/flutter_windows_3.19.6-stable"
}

⚙️ 8. Configurar JDK en launch.json (VSCode)

C:\\overskull\\shalom_familia\\.vscode\\launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Flutter Run Without Debug",
      "request": "launch",
      "type": "dart",
      "flutterMode": "debug",
      "noDebug": true,
      "program": "lib/main.dart",
      "env": {
        "JAVA_HOME": "C:/overskull/java/amazon-corretto-11"
      }
    }
  ]
}

🐧 9. Configuración adicional para Linux / multisistema

android/gradle.properties
org.gradle.java.home=/home/usuario/java/amazon-corretto-11

🧹 10. Limpiar el proyecto

cd android
./gradlew clean

📦 11. Descargar dependencias

flutter pub get

🛠️ 12. Modificaciones obligatorias

pubspec.yaml

pdfx: ^2.6.0
flutter_slidable: ^3.1.2

Archivo Términos y Condiciones

Ruta:

C:\\overskull\\shalom_familia\\lib\\src\\Pages\\TerminosYCondiciones\\termino_View.dart

Cambiar:

primary: Color.fromRGBO(107, 107, 107, 1),

✔️ por:

foregroundColor: Color.fromRGBO(107, 107, 107, 1),

📌 Este cambio es obligatorio para compatibilidad con Flutter 3.19.6.


🎉 13. Listo! Ahora puedes ejecutar el proyecto

flutter run
📌 Notas importantes

App Rastrea (Flutter)

Todos los repositorios se guardan en:
C:/overskull/

🧩 1. Versiones necesarias para este proyecto

Herramienta Versión
Flutter 3.19.6
Dart 3.3.x (incluido en Flutter 3.19.6)
JDK Amazon Corretto 17
Gradle Automático según Flutter

📌 Este proyecto NO usa Java 11. Usar exclusivamente Java 17.


🔽 2. Descargar Flutter (versión obligatoria del proyecto)

Descargar Flutter 3.19.6 (stable) desde:

https://docs.flutter.dev/release/archive

📌 Guardar todas las versiones de Flutter en:

C:/overskull/SDK/

Ejemplo de ruta correcta:

C:/overskull/SDK/flutter_windows_3.19.6-stable

📌 No usar Flutter global del sistema. El proyecto apunta explícitamente a su versión mediante .vscode/settings.json.


🔧 3. Instalar JDK 17 (Amazon Corretto)

Descargar desde:

https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/downloads-list.html

📌 Guardar todas las versiones de Java en:

C:/overskull/java/

Ejemplo:

C:/overskull/java/amazon-corretto-17

🚀 4. Clonar el proyecto

git clone git@storegit.overskull.com:shalom-over-app/shalom_rastrea.git
cd shalom_rastrea

📁 5. build.gradle (revisión inicial necesaria para arrancar el proyecto)

Ruta:

C:/overskull/shalom_rastrea/android/build.gradle

Ejemplo de referencia:

plugins {
    id "com.android.application"
    id "kotlin-android"
    id "dev.flutter.flutter-gradle-plugin"
}

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android {
    compileSdkVersion 34
    
    namespace "pe.com.shalom.overskull"
    compileSdkVersion flutter.compileSdkVersion
    //ndkVersion flutter.ndkVersion
    ndkVersion "25.2.9519653"
    
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = '1.8'
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    // ndkVersion "25.1.8937393"
    
    defaultConfig {
        // TODO: Specify your own unique Application ID (<https://developer.android.com/studio/build/application-id.html>).
        applicationId "pe.com.shalom.overskull"
        // You can update the following values to match your application needs.
        // For more information, see: <https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration>.
        minSdkVersion 24
        targetSdkVersion 35
        versionCode 284
        versionName "2.8.4"
        multiDexEnabled true
    
    }
     signingConfigs {
       release {
           keyAlias keystoreProperties['keyAlias']
           keyPassword keystoreProperties['keyPassword']
           storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
           storePassword keystoreProperties['storePassword']
       }
   }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            minifyEnabled false  // Asegúrate de que está en false
            shrinkResources false
            signingConfig signingConfigs.release
        }
    }
    
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        jniLibs {
            useLegacyPackaging = false
        }
        doNotStrip "**/*.so"
    }
}

flutter {
    source '../..'
}

dependencies {
    implementation 'com.google.android.material:material:1.4.0'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.android.support:support-fragment:28.0.0'
    implementation 'com.google.http-client:google-http-client:1.28.0'
    implementation 'com.google.http-client:google-http-client-android:1.28.0'
    implementation 'com.google.http-client:google-http-client-jackson2:1.28.0'
    implementation 'com.fasterxml.jackson.core:jackson-core:2.9.8'
    implementation 'org.slf4j:slf4j-log4j12:1.7.25'
    implementation 'com.google.guava:guava:27.0.1-android'
    implementation fileTree(dir: "libs", include: ["*.jar", "*.aar"])
}

📌 Verificar principalmente:

📌 Si este archivo tiene errores, la app no podrá compilar.


⚙️ 6. Configurar JDK en gradle.properties

Editar:

C:/overskull/shalom_rastrea/android/gradle.properties

Contenido:

org.gradle.jvmargs=-XX:MaxHeapSize=4048m
android.useAndroidX=true
android.enableJetifier=true
org.gradle.java.home=C:/Program Files/Amazon Corretto/jdk17.0.17_10

📌 Cambiar la ruta según donde se guardó el JDK.


🧰 7. Configurar la versión de Flutter usada por el proyecto

Editar o crear:

C:/overskull/shalom_rastrea/.vscode/settings.json
{
  "dart.flutterSdkPath": "C:/overskull/SDK/flutter_windows_3.19.6-stable",
  "java.configuration.updateBuildConfiguration": "interactive"
}

⚙️ 8. Configurar JDK en launch.json (VSCode)

Editar o crear:

C:/overskull/shalom_rastrea/.vscode/launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Flutter Run Without Debug",
      "request": "launch",
      "type": "dart",
      "flutterMode": "debug",
      "noDebug": true,
      "program": "lib/main.dart",
      "env": {
        "JAVA_HOME": "C:/overskull/java/amazon-corretto-17"
      }
    }
  ]
}

🐧 9. Configuración adicional para Linux / multisistema

Editar:

android/gradle.properties

Agregar:

org.gradle.java.home=/home/usuario/java/amazon-corretto-17

🧹 10. Limpiar el proyecto

cd android
gradlew clean

📦 11. Descargar dependencias

flutter pub get

🎉 12. Ejecutar el proyecto

flutter run

📌 Notas importantes

App Control (Flutter)

Todos los repositorios se guardan en:
C:\\overskull\\

🧩 1. Versiones necesarias para este proyecto

Herramienta Versión
Flutter 1.17.5
Dart Incluido en Flutter 1.17.5
JDK Amazon Corretto 8
Gradle 5.6.2 (wrapper del proyecto)

⚠️ Este proyecto es LEGACY. No actualizar versiones.


🔽 2. Descargar Flutter (versión obligatoria del proyecto)

Descargar Flutter 1.17.5 desde el archivo histórico:

https://docs.flutter.dev/release/archive

📌 Guardar Flutter en:

C:\\overskull\\SDKFlutter\\

Ejemplo:

C:\\overskull\\SDKFlutter\\sdk1.17.5\\flutter

📌 No usar Flutter global del sistema.


🔧 3. Instalar JDK 8 (Amazon Corretto)

Descargar desde:

https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/downloads-list.html

📌 Guardar Java en:

C:\\overskull\\java\\

Ejemplo:

C:\\overskull\\java\\amazon-corretto-8

🚀 4. Clonar el proyecto

git clone git@storegit.overskull.com:shalom-over-app/shalom_control.git

Entrar al proyecto:

cd shalom_control

📁 5. build.gradle (revisión inicial necesaria para arrancar el proyecto)

Ruta:

C:\\overskull\\shalom_control\\android\\build.gradle

Ejemplo de referencia:

buildscript {
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
        classpath 'com.google.gms:google-services:4.2.0'
    }

    subprojects {
        project.configurations.all {
            resolutionStrategy.eachDependency { details ->
                if (details.requested.group == 'com.android.support'
                        && !details.requested.name.contains('multidex') ) {
                    details.useVersion "27.1.1"
                }
                /*if (details.requested.group == 'androidx.core'
                        && !details.requested.name.contains('androidx') ) {
                    details.useVersion "1.0.1"
                }
                if (details.requested.group == 'androidx.lifecycle' &&
                        !details.requested.name.contains('androidx')) {
                    details.useVersion "2.0.0"
                }*/

                if (details.requested.group == 'androidx.core') {
                    details.useVersion "1.0.1"
                }
                if (details.requested.group == 'androidx.lifecycle') {
                    details.useVersion "2.0.0"
                }
                if (details.requested.group == 'androidx.versionedparcelable') {
                    details.useVersion "1.0.0"
                }
                if (details.requested.group == 'androidx.fragment') {
                    details.useVersion "1.0.0"
                }
                if (details.requested.group == 'androidx.appcompat') {
                    details.useVersion "1.0.1"
                }
            }
        }
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        maven { url '<https://jitpack.io>' }
    }
    configurations.all {
        resolutionStrategy {
            force 'pub.devrel:easypermissions:3.0.0'
        }
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Ruta:

C:\\overskull\\shalom_control\\android\\app\\build.gradle

Ejemplo de referencia:

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android { 
    compileSdkVersion 30

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (<https://developer.android.com/studio/build/application-id.html>).
        applicationId "com.shalom.overskull"
        minSdkVersion 16
        targetSdkVersion 35
        versionCode 452
        versionName '4.5.2'
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
            storePassword keystoreProperties['storePassword']
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'pub.devrel:easypermissions:3.0.0'
}

📌 Verificar:

⚠️ Cambios en este archivo pueden romper la app.


⚙️ 6. Gradle Wrapper (configuración obligatoria)

Este proyecto NO usa gradle.properties para Java.

Editar:

C:\\overskull\\shalom_control\\android\\gradle\\wrapper\\gradle-wrapper.properties

Contenido de referencia:

#Thu May 08 17:02:41 PET 2025
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\\://services.gradle.org/distributions/gradle-5.6.2-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

📌 No cambiar la versión de Gradle.


🧰 7. Configurar la versión de Flutter usada por el proyecto

Editar:

C:\\overskull\\shalom_control\\.vscode\\settings.json

Contenido:

{
    "dart.flutterSdkPath": "C:\\\\SDKFlutter\\\\sdk1.17.5\\\\flutter"
}

🧹 8. Limpiar el proyecto

cd android
gradlew clean

📦 9. Descargar dependencias

flutter pub get

🎉 10. Ejecutar el proyecto

flutter run

📌 Notas importantes

App Choferes (Flutter)

Todos los repositorios se guardan en:
C:\\overskull\\

🧩 1. Versiones necesarias para este proyecto

Herramienta Versión
Flutter 1.17.5
Dart Incluido en Flutter 1.17.5
JDK Amazon Corretto 8
Gradle 5.6.2 (wrapper del proyecto)

⚠️ Este proyecto es LEGACY. No actualizar versiones.


🔽 2. Descargar Flutter (versión obligatoria del proyecto)

Descargar Flutter 1.17.5 desde el archivo histórico:

https://docs.flutter.dev/release/archive

📌 Guardar Flutter en:

C:\\overskull\\SDKFlutter\\

Ejemplo:

C:\\overskull\\SDKFlutter\\sdk1.17.5\\flutter

📌 No usar Flutter global del sistema.


🔧 3. Instalar JDK 8 (Amazon Corretto)

Descargar desde:

https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/downloads-list.html

📌 Guardar Java en:

C:\\overskull\\java\\

Ejemplo:

C:\\overskull\\java\\amazon-corretto-8

🚀 4. Clonar el proyecto

git clone git@storegit.overskull.com:shalom-over-app/shalom_choferes.git

Entrar al proyecto:

cd shalom_choferes

📁 5. build.gradle (nivel proyecto)

Ruta:

C:\\overskull\\shalom_choferes\\android\\build.gradle

Ejemplo de referencia:

buildscript {
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
        classpath 'com.google.gms:google-services:4.2.0'
    }

    subprojects {
        project.configurations.all {
            resolutionStrategy.eachDependency { details ->
                if (details.requested.group == 'com.android.support'
                        && !details.requested.name.contains('multidex') ) {
                    details.useVersion "27.1.1"
                }
                /*if (details.requested.group == 'androidx.core'
                        && !details.requested.name.contains('androidx') ) {
                    details.useVersion "1.0.1"
                }
                if (details.requested.group == 'androidx.lifecycle' &&
                        !details.requested.name.contains('androidx')) {
                    details.useVersion "2.0.0"
                }*/

                if (details.requested.group == 'androidx.core') {
                    details.useVersion "1.0.1"
                }
                if (details.requested.group == 'androidx.lifecycle') {
                    details.useVersion "2.0.0"
                }
                if (details.requested.group == 'androidx.versionedparcelable') {
                    details.useVersion "1.0.0"
                }
                if (details.requested.group == 'androidx.fragment') {
                    details.useVersion "1.0.0"
                }
                if (details.requested.group == 'androidx.appcompat') {
                    details.useVersion "1.0.1"
                }
            }
        }
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

📌 Este archivo NO debe modificarse.

Contiene:

⚠️ Cambios aquí pueden romper la compilación.


📁 6. build.gradle (nivel app)

Ruta:

C:\\overskull\\shalom_choferes\\android\\app\\build.gradle

Ejemplo de referencia:

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android { 
    compileSdkVersion 31

    lintOptions {
        disable 'InvalidPackage'
    }
 
    defaultConfig {
        // TODO: Specify your own unique Application ID (<https://developer.android.com/studio/build/application-id.html>).
        applicationId "com.overskull.shalomchoferes"
        minSdkVersion 21
        targetSdkVersion 34
        versionCode 233
        versionName '2.3.3'
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias'] 
            keyPassword keystoreProperties['keyPassword']
            storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
            storePassword keystoreProperties['storePassword']
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

📌 Verificar:

⚠️ No actualizar dependencias ni plugins.


⚙️ 7. Gradle Wrapper (configuración obligatoria)

Este proyecto NO usa gradle.properties para Java.

Editar:

C:\\overskull\\shalom_choferes\\android\\gradle\\wrapper\\gradle-wrapper.properties

Contenido de referencia:

#Fri May 09 09:34:57 PET 2025
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\\://services.gradle.org/distributions/gradle-5.6.2-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

📌 No cambiar la versión de Gradle.


🧰 8. Configurar la versión de Flutter usada por el proyecto

Editar:

C:\\overskull\\shalom_choferes\\.vscode\\settings.json

Contenido:

{
    "dart.flutterSdkPath": "C:\\\\SDKFlutter\\\\sdk1.17.5\\\\flutter"
}

🧹 9. Limpiar el proyecto

cd android
gradlew clean

📦 10. Descargar dependencias

flutter pub get

🎉 11. Ejecutar el proyecto

flutter run

📌 Notas importantes

Si falla la compilación:

flutter clean
flutter pub get