PiRogueToolSuite / pirogue-cli

CLI interface to control the PiRogue
https://pts-project.org/
GNU General Public License v3.0
6 stars 2 forks source link

Scrcpy crash #10

Closed U039b closed 1 year ago

U039b commented 1 year ago
[server] ERROR: Could not invoke method
java.lang.NoSuchMethodException: android.content.IClipboard$Stub$Proxy.addPrimaryClipChangedListener [interface android.content.IOnPri                        maryClipChangedListener, class java.lang.String, int]
        at java.lang.Class.getMethod(Class.java:2103)
        at java.lang.Class.getMethod(Class.java:1724)
        at com.genymobile.scrcpy.wrappers.ClipboardManager.getAddPrimaryClipChangedListener(ClipboardManager.java:103)
        at com.genymobile.scrcpy.wrappers.ClipboardManager.addPrimaryClipChangedListener(ClipboardManager.java:111)
        at com.genymobile.scrcpy.Device.<init>(Device.java:86)
        at com.genymobile.scrcpy.Server.scrcpy(Server.java:24)
        at com.genymobile.scrcpy.Server.main(Server.java:252)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:355)
[server] ERROR: Could not invoke method
java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at com.genymobile.scrcpy.wrappers.ContentProvider.call(ContentProvider.java:83)
        at com.genymobile.scrcpy.wrappers.ContentProvider.getValue(ContentProvider.java:124)
        at com.genymobile.scrcpy.wrappers.ContentProvider.getAndPutValue(ContentProvider.java:140)
        at com.genymobile.scrcpy.Server.scrcpy(Server.java:32)
        at com.genymobile.scrcpy.Server.main(Server.java:252)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:355)
Caused by: java.lang.SecurityException: The authority unknown does not match the one of the contentProvider: settings
        at android.os.Parcel.createExceptionOrNull(Parcel.java:3011)
        at android.os.Parcel.createException(Parcel.java:2995)
        at android.os.Parcel.readException(Parcel.java:2978)
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:190)
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142)
        at android.content.ContentProviderProxy.call(ContentProviderNative.java:732)
        at android.content.IContentProvider.call(IContentProvider.java:119)
        ... 8 more
Caused by: android.os.RemoteException: Remote stack trace:
        at android.content.ContentProvider.validateIncomingAuthority(ContentProvider.java:2568)
        at android.content.ContentProvider.-$$Nest$mvalidateIncomingAuthority(Unknown Source:0)
        at android.content.ContentProvider$Transport.call(ContentProvider.java:519)
        at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:295)
        at android.os.Binder.execTransactInternal(Binder.java:1280)

[server] ERROR: Could not invoke method
java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at com.genymobile.scrcpy.wrappers.ContentProvider.call(ContentProvider.java:83)
        at com.genymobile.scrcpy.wrappers.ContentProvider.putValue(ContentProvider.java:136)
        at com.genymobile.scrcpy.wrappers.ContentProvider.getAndPutValue(ContentProvider.java:142)
        at com.genymobile.scrcpy.Server.scrcpy(Server.java:32)
        at com.genymobile.scrcpy.Server.main(Server.java:252)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:355)
Caused by: java.lang.SecurityException: The authority unknown does not match the one of the contentProvider: settings
        at android.os.Parcel.createExceptionOrNull(Parcel.java:3011)
        at android.os.Parcel.createException(Parcel.java:2995)
        at android.os.Parcel.readException(Parcel.java:2978)
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:190)
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142)
        at android.content.ContentProviderProxy.call(ContentProviderNative.java:732)
        at android.content.IContentProvider.call(IContentProvider.java:119)
        ... 8 more
INFO: Finishing recording...
[server] 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)
        at com.genymobile.scrcpy.ScreenEncoder.setDisplaySurface(ScreenEncoder.java:243)
        at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:91)ERROR: Recording failed to output.mp4

        at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:60)
        at com.genymobile.scrcpy.Server.scrcpy(Server.java:80)
        at com.genymobile.scrcpy.Server.main(Server.java:252)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:355)
Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)WARN: Device disconnected

        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:3439)
        at android.view.SurfaceControl.setDisplaySurface(SurfaceControl.java:2377)
        ... 9 more
WARN: Killing the server...
U039b commented 1 year ago

We should probably pass the -n option to the scrcpy command:

-n, --no-control        Disable device control (mirror the device in read-only).

scrcpy -t --max-size=1024 --max-fps=15 --bit-rate=2M --record=output.mp4 -N -n

U039b commented 1 year ago
pi@pirogue0:~ $ scrcpy -t --max-size=1024 --max-fps=15 --bit-rate=2M --record=output.mp4 -N -n
INFO: scrcpy 1.17 <[https://github.com/Genymobile/scrcpy>](https://github.com/Genymobile/scrcpy%3E)
* daemon not running; starting now at tcp:5037
* daemon started successfully
/usr/share/scrcpy/scrcpy-server: 1 file pushed. 3.6 MB/s (34015 bytes in 0.009s)
[server] INFO: Device: Google Pixel 6a (Android 13)
[server] ERROR: Could not invoke method
java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at com.genymobile.scrcpy.wrappers.ContentProvider.call(ContentProvider.java:83)
        at com.genymobile.scrcpy.wrappers.ContentProvider.getValue(ContentProvider.java:124)
        at com.genymobile.scrcpy.wrappers.ContentProvider.getAndPutValue(ContentProvider.java:140)
        at com.genymobile.scrcpy.Server.scrcpy(Server.java:32)
        at com.genymobile.scrcpy.Server.main(Server.java:252)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:355)
Caused by: java.lang.SecurityException: The authority unknown does not match the one of the contentProvider: settings
        at android.os.Parcel.createExceptionOrNull(Parcel.java:3011)
        at android.os.Parcel.createException(Parcel.java:2995)
        at android.os.Parcel.readException(Parcel.java:2978)
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:190)
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142)
        at android.content.ContentProviderProxy.call(ContentProviderNative.java:732)
        at android.content.IContentProvider.call(IContentProvider.java:119)
        ... 8 more
Caused by: android.os.RemoteException: Remote stack trace:
        at android.content.ContentProvider.validateIncomingAuthority(ContentProvider.java:2568)
        at android.content.ContentProvider.-$$Nest$mvalidateIncomingAuthority(Unknown Source:0)
        at android.content.ContentProvider$Transport.call(ContentProvider.java:519)
        at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:295)
        at android.os.Binder.execTransactInternal(Binder.java:1280)

[server] ERROR: Could not invoke method
java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at com.genymobile.scrcpy.wrappers.ContentProvider.call(ContentProvider.java:83)
        at com.genymobile.scrcpy.wrappers.ContentProvider.putValue(ContentProvider.java:136)
        at com.genymobile.scrcpy.wrappers.ContentProvider.getAndPutValue(ContentProvider.java:142)
        at com.genymobile.scrcpy.Server.scrcpy(Server.java:32)
        at com.genymobile.scrcpy.Server.main(Server.java:252)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:355)
Caused by: java.lang.SecurityException: The authority unknown does not match the one of the contentProvider: settings
        at android.os.Parcel.createExceptionOrNull(Parcel.java:3011)
        at android.os.Parcel.createException(Parcel.java:2995)
        at android.os.Parcel.readException(Parcel.java:2978)
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:190)
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142)
        at android.content.ContentProviderProxy.call(ContentProviderNative.java:732)
        at android.content.IContentProvider.call(IContentProvider.java:119)
        ... 8 more
[server] 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)
        at com.genymobile.scrcpy.ScreenEncoder.setDisplaySurface(ScreenEncoder.java:243)
        at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:91)
        at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:60)
        at com.genymobile.scrcpy.Server.scrcpy(Server.java:80)
        at com.genymobile.scrcpy.Server.main(Server.java:252)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:355)
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:3439)
        at android.view.SurfaceControl.setDisplaySurface(SurfaceControl.java:2377)
        ... 9 more
INFO: Recording started to mp4 file: output.mp4
INFO: Finishing recording...
ERROR: Recording failed to output.mp4
WARN: Device disconnected
WARN: Killing the server...
U039b commented 1 year ago

Should be fixed since v1.25 but we are stuck with v1.17 since no newer version of scrcpy is available on Debian.

CyrilBrulebois commented 1 year ago

Is v1.25 the first fixed version, or is that a known fixed version?

kibi@tokyo:~$ rmadison scrcpy -a source
scrcpy     | 1.17-1         | stable                   | source
scrcpy     | 1.23-1~bpo11+1 | bullseye-backports       | source
scrcpy     | 1.25-1         | unstable                 | source

If v1.23 might help, it's available in bullseye-backports.

What's worrying is that scrcpy is no longer in testing so won't be in Debian 12…

It was removed with the following bug references:

# 1011567,1012103,1012572 in android-framework-23,android-platform-external-doclava,android-platform-frameworks-base