эмулятор не работает в студии android [duplicate]

У этого вопроса уже есть некоторые удивительные ответы, но я хотел добавить, что если ваш исполняемый файл находится в PATH, и вы получаете очень разные выходы, когда вы запускаете

./executable

в те, которые вы получаете если вы запустите

executable

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

Проверьте это, выполнив

, какой исполняемый файл

и

whereis executable

Он исправил мои проблемы ... У меня было три версии исполняемого файла, только один из которых был правильно скомпилирован для среды.

113
задан rkarami 30 March 2014 в 15:20
поделиться

10 ответов

Libpng-1.6 более жестко проверяет профили ICC, чем предыдущие версии. Вы можете игнорировать предупреждение. Чтобы избавиться от него, удалите кусок iCCP из изображения PNG.

Некоторые приложения рассматривают предупреждения как ошибки; если вы используете такое приложение, вам нужно удалить кусок. Вы можете сделать это с помощью любого из различных редакторов PNG, таких как ImageMagick convert in.png out.png.

Чтобы удалить недопустимый кусок iCCP из всех файлов PNG в папке (папке), вы можете использовать ImageMagick mogrify *.png, при условии, что ваш ImageMagick был создан с помощью libpng16 (запустите convert -list format | grep PNG, чтобы быть уверенным в этом).

Если вы хотите узнать, какие файлы нужно исправлять, а не слепо обрабатывать все их, вы можете запустить мой pngcrush -n -q *.png, где «-n» означает, что вы не переписываете файлы, а «-q» означает подавление большей части вывода, за исключением предупреждений. К сожалению, в pngcrush еще нет опции для подавления всего, кроме предупреждений.


Двоичные релизы ImageMagick здесь


Для Android Проекты (Android Studio) переходят в папку res.

Например: C:\AndroidProjects\{your_project_folder}\app\src\main\res\drawable-hdpi\mogrify *.png

117
ответ дан ABCplus 25 August 2018 в 23:52
поделиться

Существует более простой способ исправить эту проблему с Mac OS с помощью Homebrew:

-> install homebrew if it is not installed yet
$brew install libpng
$pngfix --strip=color --out=file2.png file.png

или сделать это с каждым файлом в текущем каталоге:

mkdir tmp; for f in ./*.png; do pngfix --strip=color --out=tmp/"$f" "$f"; done

Он создаст фиксированную копию для каждого файла png в текущем каталоге и поместит его в подкаталог tmp. После этого, если все в порядке, вам просто нужно переопределить исходные файлы.

Еще один совет - использовать приложения Keynote и Preview для создания значков. Я рисую их, используя Keynote, размером около 120x120 пикселей, над слайдом с белым фоном (опция для редактирования многоугольников - это замечательно!). Перед экспортом в Preview я рисую прямоугольник вокруг значка (без заливки или тени, только контур размером около 135x135) и скопируйте все в буфер обмена. После этого вам просто нужно открыть его с помощью инструмента «Просмотр» с помощью «Создать из буфера обмена», выбрать область размером 128x128 пикселей вокруг значка, скопировать, снова использовать «Создать из буфера обмена» и экспортировать его в PNG. Вам не нужно будет запускать инструмент pngfix.

4
ответ дан Adriel Jr 25 August 2018 в 23:52
поделиться

Чтобы добавить к большому ответу Гленна, вот что я сделал, чтобы найти файлы, которые были неисправны:

find . -name "*.png" -type f -print0 | xargs -0 pngcrush_1_8_8_w64.exe -n -q > pngError.txt 2>&1

Я использовал find и xargs, потому что pngcrush не мог обрабатывать множество аргументов (которые были возвращены **/*.png). -print0 и -0 необходимы для обработки имен файлов, содержащих пробелы.

Затем выполните поиск в выводах для этих строк: iCCP: Not recognizing known sRGB profile that has been edited.

./ Установщик /Images/installer_background.png: Общая длина данных, найденных в критических фрагментах = 11286 pngcrush: iCCP: не распознается известный профиль sRGB, который был отредактирован

И для каждого из них запустите mogrify on это исправление.

mogrify ./Installer/Images/installer_background.png

Выполнение этого предотвращает возможность фиксации каждого отдельного файла png в репозитории, когда только некоторые из них действительно были изменены. Кроме того, у него есть преимущество, чтобы точно показать, какие файлы были неисправны.

Я тестировал это на Windows с консолью Cygwin и оболочкой zsh. Еще раз спасибо Glenn , который поставил большинство из вышеперечисленного, я просто добавляю ответ, поскольку его обычно легче найти, чем комментарии:)

6
ответ дан Community 25 August 2018 в 23:52
поделиться

Используйте pngcrush , чтобы удалить неправильный профиль sRGB из файла png:

pngcrush -ow -rem allb -reduce file.png
  • -ow перезапишет входной файл
  • -rem allb удалит все вспомогательные фрагменты, кроме tRNS и gAMA
  • -reduce делает уменьшение цвета или уменьшение глубины резкости

На выход консоли вы должны увидеть Removed the sRGB chunk. и, возможно, больше сообщений об удалении фрагментов. В конечном итоге вы получите меньший оптимизированный файл png. Когда команда перезапишет исходный файл, убедитесь, что вы создали резервную копию или используете управление версиями.

54
ответ дан friederbluemle 25 August 2018 в 23:52
поделиться

некоторая справочная информация об этом:

Некоторые изменения в версии libpng 1.6+ заставляют ее выдавать предупреждение или даже неправильно работать с исходным профилем HP / MS sRGB, что приводит к следующему stderr: предупреждение libpng: iCCP: известный неправильный профиль sRGB. В старом профиле используется точка белого D50, где D65 является стандартным. Этот профиль не редкость, он используется Adobe Photoshop, хотя по умолчанию он не был встроен в изображения.

(источник: https://wiki.archlinux.org/index .php / Libpng_errors )

Обнаружение ошибок в некоторых кусках улучшилось; в частности, читатель iCCP chunk теперь делает довольно полную проверку базового формата. Некоторые неудачные профили, которые были ранее приняты, теперь отклонены, в частности, очень старый сломанный профиль Microsoft / HP sRGB. Требование спецификации PNG, что только изображения с оттенками серого могут отображаться на изображениях с типом цвета 0 или 4, и даже если изображение содержит только серые пиксели, теперь применяются только профили RGB в изображениях с типом цвета 2, 3 или 6. Часть sRGB разрешается появляться на изображениях с любым типом цвета.

(источник: https://forum.qt.io/topic/58638/solved-libpng-warning -iccp известно, некорректный-SRGB-профиль-диск-я-орехи / 16 )

3
ответ дан George Birbilis 25 August 2018 в 23:52
поделиться

Вот смехотворный ответ грубой силы:

Я изменил сценарий gradlew. Вот моя новая команда exec в конце файла в

exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" **| grep -v "libpng warning:"**
-2
ответ дан Machavity 25 August 2018 в 23:52
поделиться

Используя средство просмотра изображений IrfanView в Windows, я просто сохранил изображение PNG и исправил проблему.

3
ответ дан Neil Roy 25 August 2018 в 23:52
поделиться

Еще один простой способ для программистов, использующих Qt и C ++, - написать свою собственную небольшую утилиту в форме виджета Qt или консольного приложения для исправления профиля:

QPixmap pixmap;
pixmap.load("badProfileImage.png");

QFile file("goodProfileImage.png");
file.open(QIODevice::WriteOnly);
pixmap.save(&file, "PNG");
9
ответ дан scopchanov 25 August 2018 в 23:52
поделиться

Попробовав пару предложений на этой странице, я закончил использование решения pngcrush. Вы можете использовать скрипт bash ниже для рекурсивного обнаружения и исправления плохих профилей png. Просто передайте ему полный путь к каталогу, который вы хотите найти для png-файлов.

fixpng "/path/to/png/folder"

Сценарий:

#!/bin/bash

FILES=$(find "$1" -type f -iname '*.png')

FIXED=0
for f in $FILES; do
    WARN=$(pngcrush -n -warn "$f" 2>&1)
    if [[ "$WARN" == *"PCS illuminant is not D50"* ]] || [[ "$WARN" == *"known incorrect sRGB profile"* ]]; then
        pngcrush -s -ow -rem allb -reduce "$f"
        FIXED=$((FIXED + 1))
    fi
done

echo "$FIXED errors fixed"
2
ответ дан slurry 25 August 2018 в 23:52
поделиться

Вы также можете исправить это в фотошопе ... У меня есть CC2015, но я уверен, что это то же самое для всех версий.

  1. Откройте файл .png.
  2. Файл -> Сохранить как и в открывшемся диалоговом окне снимите флажок «Профиль ICC: sRGB IEC61966-2.1»
  3. Снимите флажок «Как копировать».
  4. Смело сохраняйте над своим оригинальным .png.
  5. . Продолжайте свою жизнь, зная, что вы удалили только это немного зла из мир.
6
ответ дан Spencer 25 August 2018 в 23:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: