anvil-ui / anvil-ui/anvil

Crash on setting text via DSL.text(CharSequence)

Aberta
#117 0 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
Java
Estrelas
1.4k
Forks
89
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

Hi. I'm trying to change the text in my view via `DSL.text(CharSequence)`. Sometimes text can be null, which seems to be incorrectly handled by library:

```
java.lang.IllegalArgumentException: method android.widget.TextView.setText argument 1 has type int, got null
at java.lang.reflect.Method.invoke(Native Method)
at trikita.anvil.PropertySetter.set(PropertySetter.java:106)
at trikita.anvil.Anvil$Mount$Iterator.attr(Anvil.java:331)
at trikita.anvil.BaseDSL.attr(BaseDSL.java:105)
at trikita.anvil.DSL.text(DSL.java:2141)
```

Crash happens around:
```java
if (value == null || assignable(arg, value.getClass())) {
m.invoke(v, value);
return true;
}
```

Clearly it happens because value is `null` and chosen method has signature for `int`, which is not checked.
I assume value type should be passed to `PropertySetter.set` explicitly to handle this issue gracefully.

Existing workaround is to set text to empty string instead of `null`.

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.