-
-
Notifications
You must be signed in to change notification settings - Fork 10.7k
FAQ.pt br
Apenas o FAQ original é garantido estar atualizado.
Aqui ficam os problemas mais comuns reportados e seus estados.
Se você encontrar algum erro, o primeiro passo é atualizar para a última versão.
- Perguntas Frequentes
scrcpy
executa comandos adb
para iniciar a conexão com o dispositivo.
Se o adb
falhar, então scrpcpy não irá funcionar.
Isso normalmente não é um bug no scrcpy, mas um problema em seu ambiente.
Você precisa do adb
acessível de seu PATH
.
No Windows, o diretório atual está em seu PATH
, e adb.exe
está
incluso no release, então deve funcionar sem esforço.
ERRO: Não foi possível encontrar nenhum dispositivo ADB
Certifique-se que você habilitou corretamente a Depuração USB.
Seu dispositivo deve ser detectado por adb
:
adb devices
Se seu dispositivo não foi detectado, você pode precisar de alguns drivers (on Windows). Há um [Driver USB para dispositivos Google] google-usb-driver.
ERRO: Dispositivo não autorizado: ERROR: --> (usb) 0123456789abcdef não autorizado ERROR: Um popup deve abrir no dispositivo para pedir a autorização.
Quando estiver conectando, um popup deve abrir no dispositivo. Você deve autorizar a depuração USB.
Se não abrir, verifique stackoverflow
Se houver diversos dispositivos conectados, você vai receber esse erro:
ERRO: Múltiplos (2) dispositivos ADB: ERRO: --> (usb) 0123456789abcdef dispositivo Nexus_5 ERRO: --> (tcpip) 192.168.1.5:5555 dispositivo GM1913 ERRO: Selecione um dispositivo via -s (--serial), -d (--select-usb) ou -e (--select-tcpip)
Neste caso, você pode tanto fornecer o identificador do dispositivo que quer espelhar:
scrcpy -s 0123456789abcdef
Ou solicitar o único dispositivo USB (ou TCP/IP):
scrcpy -d # dispositivo USB
scrcpy -e # dispositivo TCP/IP
Note que se seu dispositivo estiver conectado por TCP/IP, você pode receber essa mensagem:
adb: erro: mais de um dispositivo/emulador ERRO: "adb reverse" retornou com valor 1 AVISO: 'adb reverse' falhou, voltando para 'adb forward'
Isso é esperado (devido a um bug em versões antigas do Android, veja #5), mas nesse caso, scrcpy tenta um método diferente, que deve funcionar.
versão do servidor adb (41) é diferente do cliente (39); finalizando...
Esse erro ocorre quando você usa diversas versões do adb
simultaneamente.
Você deve encontrar o programa que está utilizando uma versão diferente do adb
, e utilizar a mesma para tudo.
Você pode subscrever o binário do adb
no outro programa, ou informar ao scrcpy para utilizar um binário específico do adb
, ao configurar a variável do ambiente:
# no bash
export ADB=/caminho/para/o/adb
scrcpy
:: no cmd
set ADB=C:\caminho\para\o\adb.exe
scrcpy
# no PowerShell
$env:ADB = 'C:\caminho\para\o\adb.exe'
scrcpy
Se o scrcpy parar com um aviso "Dispositivo desconectado", então a conexão com o adb
foi finalizada.
Tente outro cabo USB ou conecte em outra porta USB. Veja #281 e #283.
Em alguns dispositivos, você pode precisar habilitar uma opção para permitir simular entradas. Nas opções de desenvolvedor, habilite:
Depuração USB (Config. de segurança) Conceder permissões de acesso e simulação de entrada via depuração USB
O método padrão de injeção de texto é limitado a caracteres ASCII. Um truque permite injetar alguns caracteres acentuados, mas isso é tudo. Veja #37.
Desde scrcpy v1.20 no Linux, é possível simular um teclado físico (HID).
Se a definição da janela do seu cliente é menor que a tela de seu dispositivo, então você pode ter baixa qualidade, especialmente visível em texto (veja #40).
Esse problema deve ser resolvido no scrcpy v1.22: atualize para a última versão.
Em versões anteriores, você deve configurar o [comportamento de escala]:
scrcpy.exe
> Propriedades > Compatibilidade > Alterar configurações de DPI alto > Substituir o ajuste de DPI > Ajuste executado por: Aplicativo.
Também, para melhorar a qualidade do downscaling, o filtro trilinear é habilitado automaticamente se o renderizador for OpenGL e se ele suporta mipmapping.
No Windows, você pode querer forçar o OpenGL a habilitar mipmapping:
scrcpy --render-driver=opengl
Por padrão, o SDL utiliza x11 no Linux. O driver de vídeo pode ser alterado pela
variável de ambiente SDL_VIDEODRIVER
:
export SDL_VIDEODRIVER=wayland
scrcpy
Em algumas distribuições (pelo menos em Fedora), o pacote libdecor
precisa ser
instalado manualmente.
Veja os problemas #2554 e #2559.
No Plasma Desktop, o compositor é desabilitado enquanto scrcpy estiver rodando.
Como gambiarra, desabilite "Composição de blocos".
Pode haver diversas razões. A causa mais comum é de que o codificador de hardware de seu dispositivo não está conseguindo codificar dada a seguinte definição:
ERROR: Exception on thread Thread[main,5,main] android.media.MediaCodec$CodecException: Error 0xfffffc0e ... Exit due to uncaughtException in main thread: ERROR: Could not open video stream INFO: Initial texture: 1080x2336
ou
ERROR: Exception on thread Thread[main,5,main] java.lang.IllegalStateException at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
Tente com uma definição menor:
scrcpy -m 1920
scrcpy -m 1024
scrcpy -m 800
Desde o scrcpy v1.22, o scrcpy automaticamente tenta com uma menor definição
antes de falhar. Esse comportamento pode ser desabilitado com --no-downsize-on-error
.
Você também pode tentar outro codificador.
Se você encontrar essa exceção no Android 12, apenas atualize para o scrcpy >= 1.18 (veja #2129):
> ERROR: Exception on thread Thread[main,5,main]
java.lang.AssertionError: java.lang.reflect.InvocationTargetException
at com.genymobile.scrcpy.wrappers.SurfaceControl.setDisplaySurface(SurfaceControl.java:75)
...
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at com.genymobile.scrcpy.wrappers.SurfaceControl.setDisplaySurface(SurfaceControl.java:73)
... 7 more
Caused by: java.lang.IllegalArgumentException: displayToken must not be null
at android.view.SurfaceControl$Transaction.setDisplaySurface(SurfaceControl.java:3067)
at android.view.SurfaceControl.setDisplaySurface(SurfaceControl.java:2147)
... 9 more
Desde a v1.22, um "atalho" foi adicionado para abrir um terminal diretamente
no diretório de seu scrcpy. Dê um duplo clique em open_a_terminal_here.bat
, então digite seu
comando. Por exemplo:
scrcpy --record file.mkv
Você também pode abrir o terminal e ir para a pasta do scrpcpy manualmente:
-
Pressione Windows+r, isso abre a caixa de diálogo.
-
Digite
cmd
e pressione Enter, isso abre um terminal. -
Vá para o diretório do scrcpy, digitando (altere o caminho):
cd C:\Users\user\Downloads\scrcpy-win64-xxx
e pressione Enter
-
Digite seu comando. Por exemplo:
scrcpy --record file.mkv
Se você planeja utilizar sempre os mesmos argumentos, crie um arquivo myscrcpy.bat
(habilite Extensões de nome de arquivos para evitar confusão) no diretório do scrcpy
, contendo seu comando. Por exemplo:
scrcpy --prefer-text --turn-screen-off --stay-awake
E então dê um duplo clique no arquivo.
Você também pode editar (a cópia de) scrcpy-console.bat
ou scrcpy-noconsole.vbs
para adicionar alguns argumentos.