Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

call requires api level 11

Estou com um probleminha, e esta aparecendo este erro em meu package

call requires api level 11

O código é o seguinte:


package br.com.caelum.cadastro;

import com.example.cadastrocaelum.R;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import br.com.caelum.cadastro.fragment.ListaProvasFragment;

public class ProvasActivity extends FragmentActivity {
//public class ProvasActivity  {

    @Override
    protected void onCreate(Bundle arg0) {
        // TODO Auto-generated method stub
        super.onCreate(arg0);
        setContentView(R.layout.provas);

        FragmentTransaction tX;
        tX = getSupportFragmentManager().beginTransaction();
        Fragment arg1 = new ListaProvasFragment();
        tX.replace(R.id.provas_view, arg1 );
        tX.commit();

    }

}

Pois bem, e agora, o que eu faço ??? pensei em instalar a api 11 pois o sistema acusa que estou usando a 8 e por algum problema esta gerando uma incompatibilidade o problema, ??? não sei também como fazer para consertar .... e também não estou conseguindo colocar a api 11

.............................................. help please ???

8 respostas

Oi Fábio, tudo bem ?

Pode colocar a exception que foi gerada para podermos ver por favor ?

Abraços

Sim, só tem um problema...

  • não gera exception.

Pois antes de compilar o eclipse informa ...

Erro no projeto,...

e o ERRO é exatamente no pacote,... na primeira linha do codigo listado.

Observei no entanto na VIDEO AULA que para utilizar o FRAGMENTactivity há uma certa incompatibilidade de API´s

Exatamente isso que esta ocorrendo... e não consigo resolver seria fácil se conseguise atualizar a api, pois quando coloco o ponteiro do mouse ....

Em cima do

         package br.com.caelum.cadastro;

Sou informado que o erro é devido a API pois aparece a mensagem:

         call requires API LEVEL 11
              (current min is 8)

Espero ter colaborado, mais não sei como resolver se puder me ajudem....

Fabio,

Algumas classes e comportamentos são incorporados a medida que o Android vai avançando, se tentarmos usar algo que foi adicionado para a API mais recente, e nosso projeto vai rodar em outras APIS, ele vai reclamar falando que nas APIS mais baixas alguns comportamentos não existem ainda.

Faz o seguinte, altera a sua herança, invés dessa classe FragmentActivity usa a classe que você está usando nas suas activities, que deve ser ActionBarActivity ou AppCompatActivity senão me engano.

Vê se funciona, por gentileza.

Se ficar com alguma duvida, me coloco a sua disposição.

Abraços

Vou tentar, porém aproveiro para informar que fiz um pequeno teste, veja...

Removi tudo, e deixei apenas...

package br.com.caelum.cadastro;

import android.support.v4.app.FragmentActivity;

public class ProvasActivity extends FragmentActivity {

}

e o erro persiste em:

       package br.com.caelum.cadastro;

Isso apenas caracteriza mais ainda que o problema esta na API

VOU TENTAR SUA DICA na esperança da api, se atualizar.... como você mesmo disse....

Algumas classes e comportamentos são incorporados a medida que o Android vai avançando

.... logo mais informo, o resultado.

Não deu certo, alias como já disse o problema esta relacionado a API 11

NOTA: O JAR

CITADO NA VIDEO AULA esta no projeto dentro da pasta libs

android-support-v4.jar

Embora tudo pareça esta correto ao criar a class ProvasActivity

package br.com.caelum.cadastro;

import com.example.cadastrocaelum.R;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import br.com.caelum.cadastro.fragment.ListaProvasFragment;
public class ProvasActivity extends FragmentActivity {

   /* vazio... sem colocar código, o erro permanece
*
*   no pacote  ==> package br.com.caelum.cadastro;
*/

}

O detalhe interessante, o erro continua mesmo estando sem códico complementar nenhum

e o erro é

call requires level 11 API

ALGUÉM PODE AJUDAR ???

solução!

Olá Fabio!

Respondi essa sua dúvida no seu outro tópico no fórum. Dá uma olhadinha prá ver se resolve o seu problema e se estiver tudo certo aí você pode fechar os tópicos, ok?

Segue o link para o tópico com a resposta:

https://www.alura.com.br/course/android-basic-3/discussions/671661

Abraço!

Fabio,

Vamos alterar a versão mínima da aplicação.

Para isso iremos entrar em um arquivo de configuração da aplicação. Você terá que ir na parte " GRADLE SCRIPTS", vai procurar o arquivo build.gradle você verá que existem dois arquivos com o mesmo nome, use o da aplicação, geralmente fica entre parenteses - "(Molude:app) ".

Lá você terá que alterar a versão mínima :


android {
      defaultConfig {
          minSdkVersion 11
    }
}

Qualquer duvida, estou a disposição.

Abraços

MEUS AGRADECIMENTOS A TODOS PELAS RESPOSTAS A MINHA PERGUNTA E AGRADECIMENTO ESPECIAL AO SR. JEFERSON SILVA

POIS FOI a resposta mais correta e que permitiu a resolução do problema.

desde já agradecido, estou fechando esta pergunta.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software