Vinculación de datos – safeUnbox warning
Después de actualizar AS gradle versión a 2.3.0, enlace de datos encuentro una advertencia:
Advertencia: selectMap [index] es un campo en caja, pero necesita ser desactivado para ejecutar selectMap [index]? @android: color / blanco: @android: color / transparente. Esto puede causar NPE, de modo que la vinculación de datos lo desacoplará con seguridad. Puede cambiar la expresión y aplicar de forma explícita selectMap [index] con safeUnbox () para evitar la advertencia
- Android Studio: Gradle - build falla - La ejecución falló para la tarea ': dexDebug'
- ¿Qué es la versión de complemento de Android incluida en IntelliJ IDEA?
- Android studio - La aplicación con proyecto de biblioteca falla al generar
- Archivos duplicados incluyendo butterknife con gradle
- Cómo resolver 'no puede encontrar una ruta de certificación válida a la meta solicitada' en Android Studio 2.3.2
SelectMap es un ObservableMap, entonces busco esta advertencia, pero solo tengo algunas discusiones y no lo arreglé
Android Studio 2.3.0-alpha1: Databinding + int unboxing provoca errores de compilación
Enlace de datos: el objeto de datos es nulo en API 15-18
Sigo el camino en los enlaces, modificar selectMap[index]
a safeUnbox(selectMap[index])
pero obtuvo el error de sintaxis.
Entonces, ¿alguien sabe cómo solucionar esta advertencia?
Edit: Aquí está el código del archivo xml
<?xml version="1.0" encoding="utf-8"?>
<data class="SupportCountryViewHolderBinding"> <variable name="viewModel" type="com.goodarc.care_about.activity.account.support_country.SupportCountryHolderViewModel" /> <variable name="dataSource" type="com.goodarc.care_about.module.assets_file.SupportCountry" /> <variable name="selectMap" type="android.databinding.ObservableMap<Integer, Boolean>" /> <variable name="index" type="int" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@{selectMap[index] ? @android:color/white : @android:color/transparent}" android:onClick="@{(v) -> viewModel.onItemSelectListener(selectMap, index)}" android:orientation="vertical" android:padding="20dp"> <TextView style="@style/TitleLabel2" android:layout_gravity="center_vertical|start" android:text="@{dataSource.display}" android:textColor="@{selectMap[index] ? @android:color/black : @android:color/white}" tools:text="Taiwan (+886)" /> </LinearLayout>
Construir es tener éxito, pero advertencia salir (i pasado más arriba).
- Error: Error de ejecución para la tarea ': app: transformClassesWithMultidexlistForDebug'
- ¿Cómo dividir la lógica build.gradle en archivos más .gradle?
- Error de compilación de Android Studio y Gradle
- Android Studio ignorar --core-library flag
- Cómo evitar la generación automática de Android.mk con el nuevo gradle experimental Plugin
- Gradle No se pudo encontrar el método compile () para los argumentos
- Android Studio: Cambiar una URL dependiendo de buildtype? (Utilizado para probar en depuración / liberación)
- No se pudo encontrar la propiedad 'xxxx' en com.android.build.gradle.AppExtension_Decorated
Tuve la misma advertencia, en mi caso cambiar la declaración de variables de tipo booleano a tipo booleano resolver el problema:
De:
<variable name="readOnly" type="Boolean" />
A:
<variable name="readOnly" type="boolean" />
Así que, tal vez usted puede probar con:
<variable name="selectMap" type="android.databinding.ObservableMap<Integer, boolean>" />
Puedes añadir safeUnbox así:
android:text="@{Double.toString(safeUnbox(product.listPrice))}"
- Error de acceso "Acceso root rechazado" en la aplicación android
- Reaccionar-responder a cambio nativo dinámicamente