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

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&lt;Integer, Boolean&gt;" /> <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).

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&lt;Integer, boolean&gt;" /> 

Puedes añadir safeUnbox así:

 android:text="@{Double.toString(safeUnbox(product.listPrice))}" 
  • La compilación de Android studio falló con el siguiente error
  • Gradle (plugin experimental androide) ignora una dependencia del proyecto
  • AndroidStudio (0.8.9 Mac) No se pudo sincronizar el nuevo proyecto Gradle
  • Heredar JavaDoc desde Android SDK con Gradle
  • Error al inflar la clase com.facebook.widget.LoginButton con Facebook SDK 4.0.1
  • ¿Cómo definimos varios módulos con el nuevo creador basado en gradles de NDK?
  • Ejecute pruebas de unidad android y pruebas de instrumentación en Jenkins (Gradle)
  • Gradle Advertencia "no especificado depende de las bibliotecas, pero es un jar", mientras que la compilación de un módulo de Android dentro de un módulo de biblioteca java personalizado
  • Android Studio: No se pudo encontrar com.android.tools.build:gradle:2.0.0-alpha2
  • importar Facebook SDK en mi proyecto android - error Gradle
  • Cómo cambiar el nombre del paquete de la aplicación de Android al ensamblar con Gradle?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.