Sep
14

Erro “Where is the debugger or host application running?”

Ultimamente aparece-me por vezes a mensagem “Where is the debugger or host application running?” ao entrar em alguns sites noutro computador que tenho em casa. Como o mesmo problema acontecia também em alguns dos nossos projectos (Webfuel), tive que investigar pelo que deixo aqui as conclusões e solução para o problema.

Erro

Aparentemente o problema surge quando o utilizador tem uma versão do Flash Player inferior a 9.0.115.0 e:

  1. Foi colocado no servidor uma versão de debug do SWF;
  2. Foi colocado no servidor uma versão de release do SWF, mas que carrega outros SWF’s compilados para debug.

No nosso caso, o problema era o segundo. Estávamos a colocar no servidor uma versão de release do SWF, mas que carregava um SWF feito no Flash por um designer que tinha deixada activa a opção de debug. A partir daí, todos os visitantes com uma versão do Flash Player inferior à referida acima deparavam-se com a mensagem acima.

Como garantir que um SWF está em versão de release?

Para os utilizadores do Flex 3, é preciso fazer “Project > Export Release Build”. A partir daí serão gerados na pasta “bin-release” SWFs em versão de release que não possuem informação de debug, ocupam relativamente menos Kb’s, e não mostram a mensagem acima. Este é o SWF que deve ser colocado no servidor, e não o da pasta bin-debug.

No Flex 2 não é necessário fazer o “Project > Export Release Build” visto que em cada compilação são criadas duas cópias do SWF: uma de release, e outra de debug. Deve ser colocado no servidor o SWF de release.

Para os utilizadores do Flash CS3, é necessário ir a: “File > Publish Settings > Flash” e desligar a opção “Permit debugging”.

Este problema pode ser chato para quem recebe SWFs feitos por outras pessoas (designers, por exemplo), que podem por vezes não estar compilados para release. Nesse caso a unica solução é pedir à partida aos designers para confirmarem que a referida opção está desligada.

Usar o Flash Switcher para verificar se o erro acima aparece

Habitualmente quem desenvolve costuma ter uma versão actualizada do Flash Player que não mostra o erro acima com SWFs de debug. Assim, como nas máquinas de desenvolvimento não aparece esse erro a solução seria fazer um downgrade do Flash Player e testar. Felizmente existe um plugin para o Firefox chamado “Flash Switcher” que permite ter na mesma máquina instaladas várias versões do Flash Player, trocando a versão com um clique. Assim, com este plugin basta escolher uma versão baixa do Flash Player 9 (por exemplo a r45), e abrir os sites normalmente. Se o erro aparecer, é preciso trocar os SWFs para a versão de release.

Flash Switcher

A partir da versão 9.0.115.0 do Flash Player este erro deixa de ser apresentado aos utilizadores, como referido neste post do Tinic Uro. Ainda assim, convém colocar as versões correctas de todos os SWFs no servidor para garantir que o erro não é apresentado a ninguém.

No Comments

Make A Comment

No comments yet.

Comments RSS Feed   TrackBack URL

Leave a comment

top