Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Problema com Library Project

Ta la no link que passei.


In other words, the constants are not final in a library project. The reason for this is simple: When multiple library projects are combined, the actual values of the fields (which must be unique) could collide. Before ADT 14, all fields were final, so as a result, all libraries had to have all their resources and associated Java code recompiled along with the main project whenever they were used. This was bad for performance, since it made builds very slow. It also prevented distributing library projects that didn't include the source code, limiting the usage scope of library projects.

The reason the fields are no longer final is that it means that the library jars can be compiled once and reused directly in other projects. As well as allowing distributing binary version of library projects (coming in r15), this makes for much faster builds.

Lúcio Maciel
luciofm@gmail.com


2012/5/30 Anderson <asa.sousa@gmail.com>
Como o "if else", pode se tornar grande...
Seria querer demais, saber porque somente em Library Project, tem esta limitação?

Att,

        Anderson




Em 30 de maio de 2012 17:15, luciofm <luciofm@gmail.com> escreveu:

Sim Anderson, essa é a recomendação do google, como postei no inicio da thread.

Lúcio Maciel
luciofm@gmail.com



2012/5/30 Anderson <asa.sousa@gmail.com>
Já havia tentado esta sugestão.

Obrigado pelas dicas.

Mas pergunto para quem já trabalhou com Library Project, pois é a base recomendada para ter uma versão free e outra paga.
Se tiveram que usar o "if else", mesmo...

Att,

        Anderson




Em 30 de maio de 2012 17:13, luciofm <luciofm@gmail.com> escreveu:

Em um projeto de Library não vai não...

Lúcio Maciel
luciofm@gmail.com


2012/5/30 Jonas Alves <jonasfa@gmail.com>
Vai sim, pois a variável local "id" é final.

-- 
Jonas Alves

On Wednesday, May 30, 2012 at 5:08 PM, luciofm wrote:

O Problema Jonas é que o R.id.btnExit não é final, então ele não vai deixar usa-lo no switch

Lúcio Maciel
luciofm@gmail.com


2012/5/30 Jonas Alves <jonasfa@gmail.com>
Você pode extrair este trecho para um novo método e fazer o parâmetro ser final. E.g:

doSomething(v.getId());
...

void doSomething(final int id) {
  switch (id) {
    case R.id.btnExit:
      finish();
      break;
  }
}

-- 
Jonas Alves

On Wednesday, May 30, 2012 at 9:47 AM, Anderson wrote:

Em um projeto de "biblioteca", o compilador indica erro quando temos:

switch (v.getId())
{
  case R.id.btnExit:
     finish();
    break;
}

Erro: case expressions must be constant expressions

Ele somente permite utilizar em um switch, uma constante.

Teria como alterar alguma configuração no projeto/eclipse, para contornar esta limitação?


Att,

        Anderson










  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário