Режим отладки - это нормально, но ошибка режима выпуска?

мое приложение скомпилировано и отлично работает в режиме отладки. Но в режиме выпуска он дает ошибку при компиляции изображения на экране, как показано ниже.

Конфигурация по требованию является инкубационной функцией. В NDK отсутствует каталог «платформ». Если вы используете NDK, убедитесь, что ndk.dir установлен в действительный каталог NDK. В настоящее время он установлен в C: Users pel AppData Local Android Sdk ndk-bundle. Если вы не используете NDK, отключите переменную NDK от ANDROID_NDK_HOME или local.properties, чтобы удалить это предупреждение.

Не удалось найти google-services.json во время поиска в [src / nullnull / debug, src / debug / nullnull, src / nullnull, src / debug, src / nullnullDebug] registerResGeneratingTask устарел, использовать registerGeneratedResFolders (FileCollection) Не удалось найти google- services.json, смотря в [src / nullnull / release, src / release / nullnull, src / nullnull, src / release, src / nullnullRelease] registerResGeneratingTask устарел, используйте registerGeneratedResFolders (FileCollection): app: preBuild UP-TO-DATE: app: preReleaseBuild UP-TO-DATE: app: compileReleaseAidl UP-TO-DATE: app: compileReleaseRenderscript UP-TO-DATE: приложение: checkReleaseManifest UP-TO-DATE: приложение: generateReleaseBuildConfig UP-TO-DATE: app: prepareLintJar UP- TO-DATE: приложение: mainApkListPersistenceRelease UP-TO-DATE: приложение: generateReleaseResValues ??UP-TO-DATE: приложение: generateReleaseResources UP-TO-DATE: приложение: processReleaseGoogleServices Парсинг json-файла: D: SEDAT PROJELER ANDROIDPROJELER egiticioyunlar app google-services.json: приложение: mergeReleaseResources D: pel PRO JELER ANDROIDPROJELER egiticioyunlar app src main res drawable ic_stat_ic_notification.png: ошибка: не удалось прочитать подпись PNG: файл не начинается с PNG-подписи. Ошибка: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: ошибка AAPT2: проверьте журналы для получения более подробной информации: app: mergeReleaseResources FAILED

android,debugging,release,

-1

Ответов: 2


0

tldr :
Файл PNG по пути «D: pel PROJELER ANDROIDPROJELER egiticioyunlar app src main res drawable ic_stat_ic_notification.png" поврежден. Убедитесь, что вы используете действительные файлы PNG.

Почему:
Разница между режимами отладки и выпуска зависит от разных потребностей каждой сборки. Отладочная сборка должна быть быстрее, поскольку они выполняются очень часто. Для сборки релиза необходимо создать оптимизированные (меньшие) APK, так как это продукт, который будет доставлен пользователю.

Вот почему сжатие PNG (сжатие файлов изображений, если возможно) отключено для отладочных сборников, но включено для сборки релиза. PNG crunching тщательно просматривает содержимое файла, и поэтому, если с файлом что-то не так, во время сборки релиза будет возникать ошибка.

Во время отладки сборки PNG-хруст отключен. PNG все еще скомпилирован (обработан), но не оптимизирован, и поэтому не все можно поймать так же часто, как в сборке релизов.

Если вы хотите, вы можете включить хруст PNG для отладочных сборников, но я бы не рекомендовал его, поскольку он сильно влияет на время сборки (до 30% медленной обработки ресурсов). Аналогичным образом, вы можете отключить сжатие PNG для сборки релизов, но это, в свою очередь, может сделать APK намного, намного больше, и я тоже очень не рекомендую это делать.

android {
    buildTypes {
        release {
            // Disables PNG crunching for the release build type. Don't do this.
            crunchPngs false
        }
        debug {
            // Enabled PNG crunching for the debug build type. Don't do this.
            crunchPngs true
        }
    }
}

0

Я создал двоичный файл с именем «debug» и «release» в основном каталоге. Я поместил в него файл «google-services.json» и был скомпилирован без ошибок.

андроид, отладка, выпуск,
Похожие вопросы