As IDs de resources do Android de repente não são finais, o switch () está quebrado

Tive um projeto Android Java por um tempo. Hoje, atualizei as ferramentas de desenvolvimento do Android paira as últimas novidades do Google. E o projeto quebrou – eu recebo um monte de "expressões de caso devem ser expressões constantes" mensagens de erro de compilation.

Descreve que o file R.java está sendo gerado de forma diferente. Anteriormente, teria um monte de

  • O Android Studio 2.3 não possui especificador de Instrução de Teste na UI
  • Lugair certo paira colocair files mp3 em um projeto Android
  • Eventos de connection com o wifi wifi hotspot
  • Dicas sobre desenho de alto performance no Android
  • Diferença entre getWritableDatabase () e getReadableDatabase ()?
  • Execute o Android OpenGL em segundo plano como recurso de renderização paira aplicativo?
  • public static final int MyID=0x12340000; 

    afirmações; agora, pairece (depois de uma limpeza / reconstrução) assim:

     public static int MyID=0x12340000; 

    final se foi. Então, todos os switches em IDs de resources que eu tinha (e eu tinha alguns) estão errados. O que aconteceu, por favor? Sou apenas eu? Qual é o raciocínio aqui? Está documentado em qualquer lugair? Posso trazer o final volta de alguma forma?

  • O Android NestedScrollView alinha o conteúdo no topo
  • Como desativair / ocultair o indicador de três pontos (Indicador do menu de opções) nos apairelhos ICS
  • A installation do Android SDK não encontra JDK
  • A notificação do construtor está obsoleta
  • Como conviewter image em PDF?
  • android.content.res.Resources $ NotFoundException: String resource ID # 0x0
  • One Solution collect form web for “As IDs de resources do Android de repente não são finais, o switch () está quebrado”

    Isso aconteceu sobre ontem, quando o SDK / ADT 14 foi lançado:

    A pairtir do ADT 14, as constantes de resources em projetos de biblioteca não são mais finais. Isso é explicado em detalhes em http://tools.android.com/tips/non-constant-fields

    Há um quickfix disponível no ADT 14: http://tools.android.com/recent/switchstatementconviewsion

    Paira citair o raciocínio:

    Quando vários projetos de biblioteca são combinados, os valores reais dos campos (que devem ser únicos) podem colidir. Antes do ADT 14, todos os campos eram finais, de modo que, como resultado, todas as bibliotecas tinham que ter todos os seus resources e o código Java associado recompilado junto com o projeto principal sempre que eles eram usados. Isso foi ruim paira o performance, uma vez que ele criou muito lento. Também impediu a distribuição de projetos de biblioteca que não incluíam o código-fonte, limitando o scope de uso dos projetos da biblioteca.

    A razão pela qual os campos não são mais finais é que isso significa que os flasks da biblioteca podem ser compilados uma vez e reutilizados diretamente em outros projetos. Além de permitir a distribuição de viewsão binária de projetos de biblioteca (chegando em r15), isso faz com que construções muito mais rápidas.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.