Невозможно решить несовместимую с ошибкой атрибута в Android - PullRequest
0 голосов
/ 01 ноября 2018

У меня следующая ошибка, и я понятия не имею, почему это происходит. Все, что я сделал, это добавил флаг вызвал «mon» и попытался добавить его в пользовательский вид в xml. флаги отличные от "мон" работ Что ж. В чем смысл этой ошибки? Я хотел бы услышать от вас.

Android resource linking failed
Output:  samp/app/src/main/res/layout/layout_mon.xml:2: error: 'mon' is incompatible with attribute mon_type (attr) flags [sol=1, dan=4, tin=2] [weak].
error: failed linking file resources.

Command: /Users/me/.gradle/caches/transforms-1/files-1.1/aapt2-3.2.1-4818971-osx.jar/0c6f710daca8a09e3/aapt2-3.2.1-4818971-osx/aapt2 link -I\
        /Users/me/Library/Android/sdk/platforms/android-26/android.jar\
        --manifest\
      /Users/me/Documents/samp/app/build/intermediates/instant_run_merged_manifests/_stagingDebug/process_stagingDebugManifest/instant-run/AndroidManifest.xml\
        -o\
        /Users/me/Documents/samp/app/build/intermediates/processed_res/_stagingDebug/process_stagingDebugResources/out/resources-_stagingDebug.ap_\
        -R\
        @/Users/me/Documents/samp/app/build/intermediates/incremental/process_stagingDebugResources/resources-list-for-resources-_stagingDebug.ap_.txt\
        --auto-add-overlay\
        --java\
        /Users/me/Documents/samp/app/build/generated/not_namespaced_r_class_sources/_stagingDebug/process_stagingDebugResources/r\
        --custom-package\
        jp.aeonretail.aeon.kidsrepublic\
        -0\
        apk\
        --preferred-density\
        xxhdpi\
        --output-text-symbols\
        /Users/me/Documents/samp/app/build/intermediates/symbols/_st/debug/R.txt\
        --no-version-vectors
Daemon:  AAPT2 aapt2-3.2.1-4818971-osx Daemon #0

// внутри атрибутов

<declare-styleable name="MonView">
    <attr name="mon_type">
        <flag name="sol" value="0x01"/>
        <flag name="dan" value="0x02"/>
        <flag name="tin" value="0x04"/>
        <flag name="mon" value="0x06"/>
    </attr>
</declare-styleable>

// вид

<?xml version="1.0" encoding="utf-8"?>
<example.MonView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/mon_id"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:mon_type="mon"
</example.MonView>

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Я полагаю, у вас есть какое-то пользовательское представление, которое использует эти атрибуты, что-то вроде MonView. Не могли бы вы также предоставить код этого представления? Это должен быть класс java или kotlin. Кажется, что когда вы получаете свои атрибуты в среде выполнения в вашем представлении, которое использует их, оно будет пытаться отобразить полученное значение атрибута в некоторой предустановленной позиции массива или типе перечисления внутри вашего пользовательского типа представления. Так как вы только добавили новый атрибут в xml, но не обновили массив (или enum, или просто какую-то логику с ключом / регистром, однако он реализован), вы получаете эту ошибку. Надеюсь, это поможет. Я смогу рассказать вам больше, если есть правильный фрагмент кода. Приветствия.

0 голосов
/ 01 ноября 2018

Вы объявили имя свойства, но тип ввода не указан измените свои атрибуты на

<declare-styleable name="MonView">
<attr name="mon_type" format="flags">
    <flag name="sol" value="0x01"/>
    <flag name="dan" value="0x02"/>
    <flag name="tin" value="0x04"/>
    <flag name="mon" value="0x06"/>
</attr></declare-styleable>

Надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...