Intereting Posts
Пользовательская версияName значение AndroidManifest.xml в коде Резервное копирование и восстановление базы данных SQLite на SDCard Android – разница между Gridlayout и Staggered Gridlayout Добавить репозиторий maven для сборки.gradle GridLayout выровняет дочерние элементы в столбце Переход на активный элемент на Android-андроиде 5 Как программно извлекать все и выполнять размеры приложений, использование ЦП? Android In-App Purchase V3 Ошибка: требуется аутентификация App Widget не отображается в списке виджетов на устройствах Honeycomb до тех пор, пока Launcher не будет перезапущен Использование notifyItemRemoved или notifyDataSetChanged с RecyclerView в Android Android – локальное изображение в webview Полный список кодов ошибок MediaPlayer Как отправить строку из одной активности в другую? Каковы размеры значков в кнопках действий уведомлений Android? Платформа Android: возможен ли пользовательский интерфейс для многократного использования?

Не удалось выполнить компиляцию AAPT2: неверный размер на Android 3.0 Canary 1

Я играю с Instant Apps для Android. Я установил все правильные пакеты и устал, чтобы создать новое приложение с поддержкой Instant App (отметьте флажок для Instant App при создании нового приложения). Проблема в том, что я всегда сталкиваюсь с проблемой с инструментами компиляции. У кого-нибудь еще есть эта проблема, и он смог найти любое решение.

Моя среда:

  • Android Studio 3.0 Канарейка 1
  • Компиляция SDK: 25
  • Build Tools: "26.0.0 rc2"
  • Плагин Gradle: 3.0.0-alpha1
  • Gradle: попробовал как gradle-4.0-milestone1, так и 2
  • Java 1.8 / 1.7
  • ОС: попробовал как Windows 10, так и Linux Ubuntu 16.4 LTS

Ошибка:

Error: java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.internal.aapt.AaptException: AAPT2 compile failed: aapt2 compile -o /home/simonp/Work/201705_InstantApp/InstantAppTest/feature/build/intermediates/res/merged/androidTest/debug /home/simonp/Work/201705_InstantApp/InstantAppTest/feature/build/intermediates/incremental/mergeDebugAndroidTestResources/merged.dir/values/values.xml Issues: - ERROR: /home/simonp/Work/201705_InstantApp/InstantAppTest/feature/build/intermediates/incremental/mergeDebugAndroidTestResources/merged.dir/values/values.xml:520 invalid dimen - ERROR: /home/simonp/Work/201705_InstantApp/InstantAppTest/feature/build/intermediates/incremental/mergeDebugAndroidTestResources/merged.dir/values/values.xml:521 invalid dimen - ERROR: /home/simonp/Work/201705_InstantApp/InstantAppTest/feature/build/intermediates/incremental/mergeDebugAndroidTestResources/merged.dir/values/values.xml:568 invalid dimen - ERROR: /home/simonp/Work/201705_InstantApp/InstantAppTest/feature/build/intermediates/incremental/mergeDebugAndroidTestResources/merged.dir/values/values.xml:594 invalid dimen - ERROR: /home/simonp/Work/201705_InstantApp/InstantAppTest/feature/build/intermediates/incremental/mergeDebugAndroidTestResources/merged.dir/values/values.xml:595 invalid dimen - ERROR: /home/simonp/Work/201705_InstantApp/InstantAppTest/feature/build/intermediates/incremental/mergeDebugAndroidTestResources/merged.dir/values/values.xml:597 invalid dimen - ERROR: /home/simonp/Work/201705_InstantApp/InstantAppTest/feature/build/intermediates/incremental/mergeDebugAndroidTestResources/merged.dir/values/values.xml:598 invalid dimen - ERROR: /home/simonp/Work/201705_InstantApp/InstantAppTest/feature/build/intermediates/incremental/mergeDebugAndroidTestResources/merged.dir/values/values.xml:599 invalid dimen - ERROR: /home/simonp/Work/201705_InstantApp/InstantAppTest/feature/build/intermediates/incremental/mergeDebugAndroidTestResources/merged.dir/values/values.xml:600 invalid dimen - ERROR: /home/simonp/Work/201705_InstantApp/InstantAppTest/feature/build/intermediates/incremental/mergeDebugAndroidTestResources/merged.dir/values/values.xml:601 invalid dimen - ERROR: /home/simonp/Work/201705_InstantApp/InstantAppTest/feature/build/intermediates/incremental/mergeDebugAndroidTestResources/merged.dir/values/values.xml:602 invalid dimen - ERROR: /home/simonp/Work/201705_InstantApp/InstantAppTest/feature/build/intermediates/incremental/mergeDebugAndroidTestResources/merged.dir/values/values.xml:603 invalid dimen :feature:mergeDebugAndroidTestResources FAILED 

В рассматриваемой строке содержится (520):

 <item format="float" name="abc_disabled_alpha_material_dark" type="dimen">0.30</item> 

Надеюсь, я предоставил вам достаточно информации для решения проблемы. Спасибо.

Solutions Collecting From Web of "Не удалось выполнить компиляцию AAPT2: неверный размер на Android 3.0 Canary 1"

Обходной путь заключается в том, чтобы переключить вашу машину разработки в локаль, которая использует «.». Как десятичная метка.

Его можно изменить следующим образом:

Введите описание изображения здесь

Ниже приведены три решения: A, B и C; Выберите тот, который вас устроит:

A – Установка Android Studio через файл Ubuntu .desktop launcher

Это альтернатива Ubuntu для общего подхода к установке Android Studio (см. Ниже). Обратите внимание, что вы все равно можете реализовать часть об исправлении оболочки и, возможно, даже отменить любые модификации studio.sh чтобы полностью подтвердить это исправление.

Я устал исправлять мою studio.sh для каждого обновления studio.sh , поэтому я придумал лучшее решение, которое устраняет этот шаг. Он работает на Ubuntu и просто включает создание пусковой установки .desktop, которая задает переменную больной среды, о которой идет речь.

  1. Запишите, где установлен Android Studio 3, например ~/opt/android-studio-3 .

  2. Подготовьте локальный каталог значков и приложений, если их еще нет:

     mkdir -vp ~/.local/share/icons ~/.local/share/applications 
  3. Создайте значок Android Studio 3, который заставит вашу пусковую установку выделяться из значка по умолчанию и сохранить его в ~/.local/share/icons/android-studio-3.png . Или вы можете использовать этот, который я сделал, протирая оригинал ( ~/opt/android-studio-3/bin/studio.png ):

    андроид-студия-3.png

  4. Создайте файл запуска Android Studio 3 следующим образом:

     cat <<-EOF > ~/.local/share/applications/android-studio-3.desktop [Desktop Entry] Version=1.0 Type=Application Name=Android Studio 3 Icon=android-studio-3 Exec=env LC_NUMERIC="en_US.UTF-8" opt/android-studio-3/bin/studio.sh "%f" Categories=Development;IDE; Terminal=false StartupWMClass=jetbrains-studio EOF 
  5. Сделайте его исполняемым:

     chmod +x ~/.local/share/applications/android-studio-3.desktop 
  6. Теперь за сложную часть. В идеале вы должны найти, запустить и создать шорты для Android Studio 3 из Dash:

Для вашего удовольствия

Но лично я почти всегда испытываю трудности с получением Ubuntu для обнаружения моих новых или измененных файлов .desktop. Одним из решений является выход из системы и обратно. Если кто-нибудь знает, как заставить повторное сканирование, пожалуйста, дайте мне знать!

B – Исправление Android Studio

Вот простое, элегантное и полупостоятельное исправление: измените локаль самой Android-студии, изменив ее сценарий запуска:

  1. Редактируйте studio.sh eg ~/opt/android-studio/bin/studio.sh или как бы ни был ваш путь установки.

  2. Где-то в верхней части файла, ниже #!/bin/sh и до появления первых строк кода, добавьте следующее:

    LC_NUMERIC="en_US.UTF-8" .

    Вот studio.sh часть моей studio.sh для полноты:

     #!/bin/sh # # --------------------------------------------------------------------- # Android Studio startup script. # --------------------------------------------------------------------- # LC_NUMERIC="en_US.UTF-8" message() { TITLE="Cannot start Android Studio" ... 
  3. Перезапустить Android Studio

C – Фиксация оболочки

Создание из оболочки с помощью gradlew также требует исправления. Это влияет только на оболочку, а не на Android Studio. Выбери один:

  1. Либо укажите исправление при каждом вызове, как это:

    LC_NUMERIC="en_US.UTF-8" ./gradlew clean assDebug

  2. Или, чтобы сделать это постоянным для проекта , отредактируйте файл gradlew в корне проекта и где-нибудь наверху добавьте это:

    LC_NUMERIC="en_US.UTF-8"

    Как здесь:

     #!/usr/bin/env bash ################################################################################ ## ## Gradle start up script for UN*X ## ################################################################################ LC_NUMERIC="en_US.UTF-8" # Add default JVM options here. You can al... DEFAULT_JVM_OPTS="" APP_NAME="Gradle" ... 
  3. Или вы можете, конечно, также добавить глобальное и постоянное исправление, хотя использование псевдонима, gr :

     cat <<EOF>>~/.bash_aliases # Fixing Android Studio 3 Canary bug https://stackoverflow.com/a/44304075/2412477 alias gr='LC_NUMERIC="en_US.UTF-8" ./gradlew' EOF 

    Обратите внимание, что в Ubuntu добавляются псевдонимы оболочки bash; Если вы работаете на другой ОС, возможно, вам следует добавить в ~ / .bashrc или ~ / .profile.

    Затем запустите новую оболочку и теперь вместо вызова ./gradlew используйте новый псевдоним gr :

    gr clean assDebug

Явным недостатком № 2 является то, что это необходимо применять ко всем проектам вручную. Преимущество, я думаю, в том, что это будет автоматически перезаписано при установке нового gradlew, так же как studio.sh заменяется, поэтому вы можете проверить, исправлена ​​ли ошибка =)

Заметка об обновлении Android Studio или Gradle

Когда вы позже обновите установку Android Studio, она обнаружит, что вы изменили studio.sh . Вы должны позволить установщику заменить файл, а затем выполнить патч снова, как описано выше. Наконец, перезапустите Android Studio, и вы снова будете готовы. Этот псевдоним оболочки не будет возвращен этим обновлением.

Я решил эту проблему, добавив следующую строку в файлы gradle.properties

 android.enableAapt2=false 

Необходимые библиотеки для 64-битных машин:

Если вы используете 64-разрядную версию Ubuntu, вам необходимо установить 32-разрядные библиотеки со следующей командой:

 sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386 

Если вы используете 64-битную Fedora, команда:

 sudo yum install zlib.i686 ncurses-libs.i686 bzip2-libs.i686 

Добавить

 maven{ url 'https://maven.google.com' } 

Для хранилищ работают для меня