簡體   English   中英

如何殺死沖突的進程?

[英]How to kill conflicting process?

由於以下原因,我的 Kivy 應用程序在 Android 上崩潰:

CameraService: Conflicts with: Device 1, client package com.gad.kivyandroid (PID 13357, priority 2147483645)

當我嘗試運行os.kill(13357, SIGKILL)這將殺死整個應用程序,而不僅僅是沖突的進程。

我能做什么 ?

更新:

我在 adb shell 中運行了ps以查看進程的名稱是什么,以便我可以更好地定位它。 該服務稱為cameraserver 當我跑

pid_to_kill = check_output(['pidof', 'cameraserver'])
os.kill(int(pid_to_kill.decode().strip('\n')), SIGKILL)

它再次殺死整個應用程序,而不僅僅是沖突的相機進程。

第二次更新:

創建布局和 xcamera 實例:

self.xcamera_layout = FloatLayout(size=Window.size)
self.front_cam = XCamera(index=1, directory=path)
self.xcamera_layout.add_widget(self.front_cam)
self.add_widget(self.xcamera_layout)

在切換到后置攝像頭之前(我沒有嘗試將index=1更改為0而不是殺死攝像頭實例)我這樣做:

self.xcamera_layout.remove_widget(self.front_cam)
self.remove_widget(self.xcamera_layout)
del self.front_cam
del self.xcamera_layout

我將嘗試簡單地切換相機鏡頭的索引,而不是殺死一個相機實例並啟動另一個。

錯誤輸出:

CameraService: CameraService::connect X (PID 29095) rejected (existing client(s) with higher priority)

我已經嘗試了很多不同的方法來解決這個問題,但顯然真正有效的方法仍未被發現:)

我需要使用self.xcamera_instance._camera._release_camera()這並不理想,因為它迫使我使用“私有”方法而不是使用與該方法接口的 API,但我需要一些可以解決問題的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM