Intereting Posts
Как я могу контролировать состояние сетевого подключения в Android? Установленное значение sharepreferences для Android Android – анимация Fadeout для заставки Как переместить мою кнопку местоположения в google mapv2 в android? Проблемы с рендерингом в Android Studio v 1.1 / 1.2 Как я могу определить, как пользователь нажимает клавишу HOME в моей деятельности? Android listview получить выбранный элемент Android IAB: «Ошибка обновления инвентаря (запрос цен на предметы)» Ошибка разработчика Как загрузить два файла apk с уровнями diff API одного приложения для Android Библиотека Android STFP Calendar.MINUTE, дающий минуты без начального нуля Предотвращать захват экрана в приложениях Android Можем ли мы использовать VectorDrawable или VectorXML в качестве значков для push-уведомлений в android? Android: TextView.setTextAppearance () не влияет на размер текста Корневые привилегии для приложения Android (полное приложение. Не только несколько команд)

Файл сборки Android Gradle с функцией Time Stamp работает вчера

Ниже у меня есть файл сборки для Gradle. Issue. Он использует вчерашний APK вместо сегодняшнего. Основная причина. Я динамически помещаю дату в имя apks – для отладочных сборников.

Когда я запускаю приложение, он видит старый APK и видит, что он соответствует ожидаемому Gradle, поскольку Gradle не обновился и заметил изменение даты.

Мне нужно заставить gradle обновить каждый пробег.

buildTypes { debug { debuggable true minifyEnabled false proguardFiles 'proguard-rules.pro' applicationVariants.all { variant -> variant.outputs.each { output -> def formattedDate = new Date().format('yyyyMMdd') def newName = output.outputFile.name newName = newName.replace("app-", "myappname-") //"MyAppName" -> I set my app variables in the root project newName = newName.replace("-release", "-" + versionName + "-" + formattedDate + "-r") newName = newName.replace("-debug", "-" + versionName + "-" + formattedDate + "-d") output.outputFile = new File(output.outputFile.parent, newName) } } } } 

Solutions Collecting From Web of "Файл сборки Android Gradle с функцией Time Stamp работает вчера"

Параметры командной строки

Даже если некоторые другие варианты могут работать, попробовали ли вы

 --recompile-scripts 

Закрепляет скрипты, которые необходимо перекомпилировать, минуя кеширование.

Вариант командной строки ? Другой альтернативой было бы --rerun-tasks , но это может быть излишним.

Опция кода: upToDateWhen

Посмотрите на Сброс свойства UP-TO-DATE задач градации? , Настройка upToDateWhen {false} может сделать трюк. Вместо этого попробуйте следующее:

  applicationVariants.all { variant -> variant.outputs.upToDateWhen {false} variant.setOnlyIf { true } variant.outputs.each { output -> def formattedDate = new Date().format('yyyyMMdd') def newName = output.outputFile.name newName = newName.replace("app-", "myappname-") //"MyAppName" -> I set my app variables in the root project newName = newName.replace("-release", "-" + versionName + "-" + formattedDate + "-r") newName = newName.replace("-debug", "-" + versionName + "-" + formattedDate + "-d") output.outputFile = new File(output.outputFile.parent, newName) } } 

Вы можете создать такую ​​задачу, например, для каждого типа аромата и типа сборки (installDebug, intallRelease), если нет вкусов, и запустить его, а не по умолчанию. Но тогда вы должны вручную приложить к отладке, и, может быть, у вас появятся другие проблемы. Возможно, есть возможность автоматически генерировать эти задачи для каждого типа аромата / сборки.

Сценарий отсюда: https://stackoverflow.com/a/21992166/4069913

 task appStart(type: Exec, dependsOn: 'install$Flavor$Build') { // linux commandLine 'adb', 'shell', 'am', 'start', '-n', 'com.example/.MainActivity' // windows // commandLine 'cmd', '/c', 'adb', 'shell', 'am', 'start', '-n', 'com.example/.MainActivity' }