streamlit
@streamlit

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

adb.exeがみつかりません。

adb.exe が見つかりません。を解決したい

ここに解決したい内容を記載してください。
pythonでandroidアプリを自動操作するコードを書いています
adb.exe が見つかりません。がターミナルに表示されうまくいきませんでした。

発生している問題・エラー

adb.exe が見つかりません。(C:\platform-toolsdbadb.exe)

スクリーンショット (10).png

該当するソースコード

adbpath = 'C:\platform-tools'

自分で試したこと

レジストリスキャンエラーを疑った
pathの確認(通っていた)
ファイルの中身の現状↓
スクリーンショット 2024-01-04 181907.png

追記
助けてくださった皆さん、ありがとうございましたadbのパスが通りました!
¥が¥¥でなかったのが原因と思われます。

0

4Answer

・公式のサンプルより

How to use

# This Python file uses the following encoding: utf-8

# pip install android-auto-play-opencv
import android_auto_play_opencv as am

adbpath = '..\\platform-tools\\'

# 省略

あるいは、

デバイス選択

複数の端末で同時実行できます。

import inquirer  # pip install inquirer
aapo = am.AapoManager('C:\\Program Files\\Nox\\bin\\')
devicesselect = [
   inquirer.List(
       "device",
       message="デバイスを選択して下さい。",
       choices=aapo.adbl.devices
   )
]
selected = inquirer.prompt(devicesselect)
aapo.adbl.setdevice(selected['device'])
aapo.screencap()

を見ると、、、区切りに¥¥が使われていることがわかります。

¥¥って何と思われたら以下を参照ください。

・Pythonの特殊記号「¥」(バックスラッシュ’\’)とエスケープシーケンスについての解説

2Like

Comments

  1. 一般的に区切りに \\ を使うべきなのは合っていますが、 '\p' は(そのようなメタ文字がないために) '\\p' と等しくなるため、今回の問題の原因ではないと考えられます。

    % python3
    Python 3.11.6 (main, Oct  2 2023, 13:45:54) [Clang 15.0.0 (clang-1500.0.40.1)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> '\p'
    '\\p'
    >>> 'C:\platform-tools' == 'C:\\platform-tools'
    True
    

AapoManager に渡すパスの末尾はスラッシュかバックスラッシュで終わっている必要があるようです。

以下のように修正してください。(末尾にバックスラッシュをつけたほか、バックスラッシュがエスケープ扱いにならないように生文字列リテラル r'' を使っています。)

adbpath = r'C:\platform-tools\'
2Like

Comments

  1. @streamlit

    Questioner

    どのように記述すればよいでしょうか
    pathの修正版を返信していただけませんか?

realpath関数で正規化しては?
ジャンクションも対応しているようです。

または、
Get-ChildItem -Recurse -Filter "adb.exe"
でフルパスを指定しては?

0Like

Your answer might help someone💌