Apri le FAQ originali e sempre aggiornate.
Questi sono i problemi più comuni riportati e i loro stati.
scrcpy
esegue comandi adb
per inizializzare la connessione con il dispositivo. Se adb
fallisce, scrcpy non funzionerà.
In questo caso sarà stampato questo errore:
ERROR: "adb push" returned with value 1
Questo solitamente non è un bug di scrcpy, ma un problema del tuo ambiente.
Per trovare la causa, esegui:
adb devices
È necessario che adb
sia accessibile dal tuo PATH
.
In Windows, la cartella corrente è nel tuo PATH
e adb.exe
è incluso nella release, perciò dovrebbe già essere pronto all'uso.
Controlla stackoverflow (in inglese).
adb: error: failed to get feature set: no devices/emulators found
Controlla di aver abilitato correttamente il debug con adb (link in inglese).
Se il tuo dispositivo non è rilevato, potresti avere bisogno dei driver (link in inglese) (in Windows).
Se più dispositivi sono connessi, riscontrerai questo errore:
adb: error: failed to get feature set: more than one device/emulator
l'identificatore del tuo dispositivo deve essere fornito:
scrcpy -s 01234567890abcdef
Notare che se il tuo dispositivo è connesso mediante TCP/IP, riscontrerai questo messaggio:
adb: error: more than one device/emulator ERROR: "adb reverse" returned with value 1 WARN: 'adb reverse' failed, fallback to 'adb forward'
Questo è un problema atteso (a causa di un bug di una vecchia versione di Android, vedi #5 (link in inglese)), ma in quel caso scrcpy ripiega su un metodo differente, il quale dovrebbe funzionare.
adb server version (41) doesn't match this client (39); killing...
L'errore compare quando usi più versioni di adb
simultaneamente. Devi trovare il programma che sta utilizzando una versione differente di adb
e utilizzare la stessa versione dappertutto.
Puoi sovrascrivere i binari di adb
nell'altro programma, oppure chiedere a scrcpy di usare un binario specifico di adb
, impostando la variabile d'ambiente ADB
:
set ADB=/path/to/your/adb
scrcpy
Se scrcpy si interrompe con l'avviso "Device disconnected", allora la connessione adb
è stata chiusa.
Prova con un altro cavo USB o inseriscilo in un'altra porta USB. Vedi #281 (in inglese) e #283 (in inglese).
Su alcuni dispositivi potresti dover abilitare un opzione che permette l'input simulato (link in inglese). Nelle opzioni sviluppatore, abilita:
Debug USB (Impostazioni di sicurezza) Permetti la concessione dei permessi e la simulazione degli input mediante il debug USB
Iniettare del testo in input è limitato ai caratteri ASCII (link in inglese). Un trucco permette di iniettare dei caratteri accentati (link in inglese), ma questo è tutto. Vedi #37 (link in inglese).
Se la definizione della finestra del tuo client è minore di quella del tuo dispositivo, allora potresti avere una bassa qualità di visualizzazione, specialmente individuabile nei testi (vedi #40 (link in inglese)).
Per migliorare la qualità di ridimensionamento (downscaling), il filtro trilineare è applicato automaticamente se il renderizzatore è OpenGL e se supporta la creazione di mipmap.
In Windows, potresti voler forzare OpenGL:
scrcpy --render-driver=opengl
Potresti anche dover configurare il comportamento di ridimensionamento (link in inglese):
scrcpy.exe
> Propietà > Compatibilità > Modifica impostazioni DPI elevati > Esegui l'override del comportamento di ridimensionamento DPI elevati > Ridimensionamento eseguito per: Applicazione.
Per impostazione predefinita, SDL utilizza x11 su Linux. Il video driver può essere cambiato attraversio la variabile d'ambiente SDL_VIDEODRIVER
:
export SDL_VIDEODRIVER=wayland
scrcpy
Su alcune distribuzioni (almeno Fedora), il pacchetto libdecor
deve essere installato manualmente.
In Plasma Desktop, il compositore è disabilitato mentre scrcpy è in esecuzione.
Come soluzione alternativa, disattiva la "composizione dei blocchi" (link in inglese).
Ci potrebbero essere molte ragioni. Una causa comune è che il codificatore hardware del tuo dispositivo non riesce a codificare alla definizione selezionata:
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
o
ERROR: Exception on thread Thread[main,5,main] java.lang.IllegalStateException at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
Prova con una definizione inferiore:
scrcpy -m 1920
scrcpy -m 1024
scrcpy -m 800
Potresti anche provare un altro codificatore.
Alcuni utenti Windows non sono familiari con la riga di comando. Qui è descritto come aprire un terminale ed eseguire scrcpy
con gli argomenti:
-
Premi Windows+r, questo apre una finestra di dialogo.
-
Scrivi
cmd
e premi Enter, questo apre un terminale. -
Vai nella tua cartella di scrcpy scrivendo (adatta il percorso):
cd C:\Users\user\Downloads\scrcpy-win64-xxx
e premi Enter
-
Scrivi il tuo comando. Per esempio:
scrcpy --record file.mkv
Se pianifichi di utilizzare sempre gli stessi argomenti, crea un file myscrcpy.bat
(abilita mostra estensioni nomi file per evitare di far confusione) contenente il tuo comando nella cartella di scrcpy
. Per esempio:
scrcpy --prefer-text --turn-screen-off --stay-awake
Poi fai doppio click su quel file.
Potresti anche modificare (una copia di) scrcpy-console.bat
o scrcpy-noconsole.vbs
per aggiungere alcuni argomenti.