GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Sistema de busca de arquivo retorna illegalStateException

erros
android
Tags: #<Tag:0x00007fc6d822d4f8> #<Tag:0x00007fc6d822d390>

#1

Ola pessoal, vou tentar ir direto ao ponto. Tenho um aplicativo que busca arquivos que estão em uma pasta diretório na web e retorna um link para o download. A busca é feita em php em um arquivo fora do app, que retorna um Json para o app gerando o link. O sistema sempre funcionou muito bem, mas de uns dias pra ca começou a retornar um erro estranho, os arquivos antigos ele retorna, mas quando busco arquivos recém enviados o try retorna com erro. Veja o código.

btnBuscar.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        String arquivo = txtLeitor.getText().toString();
        String URL = HOST;

        if(arquivo.isEmpty()){
            Toast.makeText(qr_code.this,"Preencha o campo",Toast.LENGTH_LONG).show();
        }else{
            Ion.with(qr_code.this)
                    .load(URL)
                    .setBodyParameter("arquivo_app", arquivo)
                    .asJsonObject()
                    .setCallback(new FutureCallback<JsonObject>() {
                        @Override
                        public void onCompleted(Exception e, final JsonObject result) {

                            try{
                                //Toast.makeText(qr_code.this,"Arquivo: " + result.get("ARQUIVO").getAsString(), Toast.LENGTH_LONG).show();
                                final String RETORNO = result.get("ARQUIVO").getAsString();
                                if (RETORNO.equals("ARQUIVO_NAO_EXISTE")) {
                                    Toast.makeText(qr_code.this, "O arquivo não existe em nossa base de dados", Toast.LENGTH_LONG).show();
                                }else {
                                    AlertDialog.Builder msgBox = new AlertDialog.Builder(qr_code.this);
                                    msgBox.setTitle("Arquivo Encontrado");
                                    //msgBox.setIcon();
                                    msgBox.setMessage("Confirmar o download do arquivo?");
                                    msgBox.setPositiveButton("Baixar agora", new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialogInterface, int i) {
                                            //vai pro link
                                            String url_destino = "http://portal.aquaload.com.br/";
                                            Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url_destino + RETORNO));
                                            startActivity(browserIntent);
                                            //Toast.makeText(qr_code.this,"Arquivo: " + RETORNO, Toast.LENGTH_LONG).show();
                                        }
                                    });
                                    msgBox.setNegativeButton("Voltar", new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialogInterface, int i) {

                                        }
                                    });
                                    msgBox.show();
                                }

                            }catch (Exception erro){
                                AlertDialog.Builder msgBox = new AlertDialog.Builder(qr_code.this);
                                msgBox.setTitle("ERRO");
                                //msgBox.setIcon();
                                msgBox.setMessage("Aconteceu um erro "+erro);
                                msgBox.setNegativeButton("Voltar", new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialogInterface, int i) {

                                    }
                                });
                                msgBox.show();
                                //toast
                                //Toast.makeText(qr_code.this,"Sem conexão com o banco de dados, verifique sua internet "+erro,Toast.LENGTH_LONG).show();
                            }
                        }
                    });

        }


    }
});

o erro que o try me retorna é o seguinte: illegalStateException. Busquei no google sobre esse erro e não encontrei nada. Alguem sabe o que pode ser?


#2

Por favor, dizer que “Não encontrou nada no Google” sobre essa exception é impossível.

Signals that a method has been invoked at an illegal or inappropriate time. In other words, the Java environment or Java application is not in an appropriate state for the requested operation.


Problema retorno Json
#3

Sim, encontrei isso no site java, mas não me ajudou muito, ainda estou sem entender como o erro ocorre, pelo que vi é um tanto aleatório o que pode estar ocorrendo, não sei como o java me retornar um erro mais específico, na qual eu possa solucionar isso. Quando disse que não achei nada, estava falando da solução.

O erro acontece em alguns arquivos, não consegui ver um padrão. A maioria dos arquivos funciona normal, outros retorna com esse erro, os que funcionam, sempre que testo funcionam, ou seja, é um erro relacionado ao arquivo provavelmente, então comecei a procurar padrões. Todos os arquivos que estão retornando esse erro foram enviados entre ontem e hoje. Não está relacionado com o tamanho dos arquivos, já que alguns dos arquivos testados são menores que os que retornam. Todos arquivos estão com permissão 0644, todos estão em PDF. Difícil identificar a causa.


#5

Só mais um detalhe, a aplicação web, usa exatamente o mesmo algorítimo e não retornou erro nos arquivos.

para quem quiser ver mais detalhadamente
Aplicação web
http://portal.aquaload.com.br
nela tem um link para o app