Android Studio รับรู้ว่าอุปกรณ์จริงเป็น Null หรือไม่


89

ฉันได้พัฒนาAndroid Application for Android(SDK min เวอร์ชัน 14) และได้ทำการทดสอบตามปกติกับแท็บเล็ตเช่นSamsung Galaxy 2 and Nexus 7. อย่างไรก็ตามเมื่อฉันพยายามเรียกใช้แอปพลิเคชัน (โดยการคลิกเรียกใช้AndroidStudio) AS ไม่รู้จักข้อมูลแท็บเล็ตซึ่งแสดงในภาพด้านล่าง

อุปกรณ์เป็น Null

สิ่งที่น่าสนใจคือดังที่แสดงในภาพด้านบน AS กำลังตรวจจับอุปกรณ์ sdk เช่นกันAPI 1เมื่อเป็นเวอร์ชัน Android 4.2.2 แท็บเล็ตได้รับการตั้งค่าให้ยอมรับ " USB debugging" ในตัวเลือกสำหรับนักพัฒนาแล้วฉันได้ลองรีบูตแท็บเล็ตและรีสตาร์ท AS แต่ฉันก็ยังคงพบปัญหาเดิม (ทุกอย่างเรียบร้อยดีnexus 7 and Samsung Galaxy 2)

แท็บเล็ต / อุปกรณ์ที่ฉันใช้งานอยู่คือ T742 "VeryKool"

Environment information:
 OS: ubuntu
 AndroidStudio version: 0.8.6

 Tablet Android version:4.2.2
 Tablet Kernel version: 3.4.5
 App min SDK: 14

3
ฉันเคยมีปัญหานี้มาก่อน เป็นเพียงว่าพีซีของคุณไม่รู้จักแท็บเล็ตดังกล่าวดังนั้นจึงไม่อนุญาตให้ผู้ใช้ของคุณใช้งานได้ คุณสามารถเริ่มบริการ adb ในฐานะรูท (บนพีซีของคุณ) หรือเพียงแค่เพิ่มอุปกรณ์ประเภทนี้ไว้ที่ใดที่หนึ่งใน udev rouls ของคุณ จากนั้นควรใช้งานได้โดยไม่ต้องใช้กล้องหลอก หากคุณเปลี่ยนโหมดกล้องอุปกรณ์ของคุณจะแนะนำตัวเองด้วยรหัสอุปกรณ์ / ผลิตภัณฑ์อื่นซึ่งระบบของคุณรู้จัก
user3387542

@ user3387542 แต่จะเพิ่มประเภทอุปกรณ์นี้ใน udev ของฉันได้อย่างไร?
AbdelHady

ว้าว. ขอบคุณมาก. ฉันเสียเวลาไปหลายชั่วโมงแล้ว และทางออกสุดท้ายสำหรับฉันคือเริ่ม android studio ในฐานะผู้ใช้ / root ขณะที่ฉันใช้ centos OS
Abdul Mohsin

คำตอบ:


162

ตกลงในที่สุดฉันก็พบปัญหาเห็นได้ชัดว่าบนอุปกรณ์นี้คุณต้องตั้งค่าให้เชื่อมต่อเป็นกล้อง (แม้ว่าจะเปิดใช้งานการดีบัก usb แล้วก็ตาม)

ป้อนคำอธิบายภาพที่นี่

ลิงก์นี้ยังอธิบายขั้นตอนการตั้งค่า


3
ฉันค้นหาปัญหานี้มาหลายวันแล้วและวิธีแก้ปัญหาคือเชื่อมต่อเป็น "กล้อง" นี่แปลกมาก แต่ใช้งานได้! ขอบคุณสำหรับการแบ่งปัน
AbdelHady

ในกรณีของฉันมีการเลือก MTP และฉันต้องสลับไปที่ PTP จากนั้นกลับไปที่ MTP เพื่อให้ทำงานได้
rjlopes

ทำงานกับฉันด้วย! ไม่รู้ว่าเพราะอะไร!
bmnepali

ในกรณีของฉันฉันต้องเรียกใช้คำสั่งนี้บนเทอร์มินัลด้วยadb devices
Zohab Ali

57

ฉันเคยเห็นข้อผิดพลาดนี้สองสามครั้งเมื่อ adb ไม่ได้เชื่อมต่อกับสิทธิ์ที่ถูกต้อง

ลองเทอร์มินัล

~/Android/Sdk/platform-tools> ./adb devices    

ถ้ามันกลับมา

<deviceIdentifier> no permissions

จากนั้นคุณต้องรีสตาร์ท adb ด้วย perms ที่ถูกต้อง

~/Android/Sdk/platform-tools$> ./adb kill-server
~/Android/Sdk/platform-tools$> sudo ./adb devices

หากได้ผลคุณจะได้รับ

List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
<deviceIdentifier>  device

ไม่มีปัญหาความละเอียดเวอร์ชัน Sdk ใน Android Studio อีกต่อไปหลังจากนั้น


1
เมื่อทำเช่นนี้ฉันจะเห็นชื่ออุปกรณ์ของฉัน (โดยไม่มีค่าว่าง) เพียงครู่เดียวมันกำลังแสดงโมฆะอีกครั้ง
Shruti

1
นี่คือคำตอบที่ถูกต้องที่สุดเนื่องจากอุปกรณ์ Google Pixel เป็นโมฆะแม้ว่าจะเปลี่ยนประเภทการเชื่อมต่อแล้วก็ตาม
kostyabakay

สุดยอด! ขอขอบคุณ.
Kirill Starostin

22

เพียงเรียกใช้คำสั่งนี้หลังจากที่คุณเชื่อมต่ออุปกรณ์กับระบบ Ubuntu:

adb devices

สิ่งนี้ใช้ได้กับฉัน

หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณได้เลือกตัวเลือกการถ่ายโอนไฟล์ในโทรศัพท์ของคุณ


stackoverflow.com/a/34598874/9022007ลองทำเช่นนี้ด้วยหากอุปกรณ์ adb ไม่ทำงานสำหรับคุณ
Rashil Shah

มันทำงานให้ฉัน 1) อุปกรณ์ adb 2) การตั้งค่า -> อุปกรณ์ที่เชื่อมต่อ -> USB -> เปลี่ยนเป็น 'การโอนไฟล์'
amitabha2715

17

ใน Ubuntu ด้วย Pixel XL ของฉันบน 8.0 ฉันต้องทำสิ่งนี้ในขณะที่เสียบเข้ากับคอมพิวเตอร์:

การตั้งค่า -> อุปกรณ์ที่เชื่อมต่อ -> USB -> เปลี่ยนเป็น 'การโอนไฟล์'


การตั้งค่าของอะไร
arekolek

การตั้งค่าโทรศัพท์
RESTfulGeoffrey

ฉันพบว่า Pixel ของฉันเปลี่ยนเป็นโมฆะหลังจากเชื่อมต่ออยู่สักพัก ฉันยังคงรีสตาร์ทอุปกรณ์ แต่สิ่งเดียวกันจะเกิดขึ้น บางครั้งสิ่งนี้แก้ไขได้ แต่เพียงชั่วคราวแปลก ...
hmac

มันทำงานให้ฉัน 1) อุปกรณ์ adb 2) การตั้งค่า -> อุปกรณ์ที่เชื่อมต่อ -> USB -> เปลี่ยนเป็น 'การโอนไฟล์'
amitabha2715

นี้ยังคงทำงานใน 2019 ในพิกเซล 3. (ฉันมาที่นี่เพื่อมองหาทางออกที่ถาวร แต่ก็ยังไม่พบการกระทำนี้ยังคงทำงาน)
Wesely

12

มีปัญหาเดียวกันกับ Nexus 5 / 5X / Pixel 2 XL ของฉันบน Ubuntu 18.04

แก้ปัญหาอย่างถาวรคือการเพิ่มกฎ udev เพื่อให้คุณสามารถเข้าถึงอุปกรณ์

  • lsusbค้นหาอุปกรณ์ของคุณด้วยคำสั่ง ผลลัพธ์นี้เช่นสำหรับ Pixel 2 XL ของฉันสิ่งนี้:

    Bus 001 Device 003: ID 18d1:4ee7 Google Inc.
    
    # This means: BUS=001, DEVICE=003, VENDOR=18d1, PRODUCT=4ee7
    
  • ตอนนี้ตรวจสอบสิทธิ์ แทนที่ 001 และ 003 ด้วยพารามิเตอร์ของคุณ:

    ls -l /dev/bus/usb/001/008
    
    # Output: crw-rw-r-T 1 root root 189, 8 Nov 10 18:34 /dev/bus/usb/001/003
    # Unless you are root, you are missing the permissions to access the device
    
  • ในการแก้ไขปัญหานี้ให้สร้างไฟล์กฎ udev ที่sudo nano /etc/udev/rules.d/51-android.rulesมีเนื้อหาต่อไปนี้:

    SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0660", 
    GROUP="plugdev", SYMLINK+="android%n"
    
    # You need to replace "18d1" and "4ee7" with your output of `lsusb` above
    
  • ถอดปลั๊กและเสียบอุปกรณ์ของคุณกลับตอนนี้ควรจะรับรู้ได้ตลอดเวลา ถ้าไม่ให้รีสตาร์ทเซิร์ฟเวอร์ adb เป็นครั้งสุดท้ายด้วยadb kill-serverไฟล์.

ที่มา: http://www.janosgyerik.com/adding-udev-rules-for-usb-debugging-android-devices/


6

พบปัญหาเดียวกันขณะใช้ Android Studio บน Ubuntu เห็นได้ชัดสำหรับฉันการแก้ไขคือการตั้งค่าโหมดการเชื่อมต่อ USB สำหรับอุปกรณ์ที่เป็นMTP


6

ตรวจสอบเวอร์ชัน adb ก่อน: หากให้ผลลัพธ์เป็นเช่นนั้น

Android Debug Bridge version 1.0.32

จากนั้นรีสตาร์ท daemon

sudo adb kill-server
sudo adb start-server

อื่นติดตั้ง adb ก่อนและรีสตาร์ท daemon ทำงานให้ฉันใน ubuntu 16.04.3


5

เมื่อเร็ว ๆ นี้ฉันประสบปัญหาเดียวกันกับโทรศัพท์ Vivo และ MI ฉันได้ลองทุกอย่างที่อธิบายไว้ในหัวข้อนี้แล้ว ฉันลองเชื่อมต่อเป็น MTP, PTP; แต่ไม่มีอะไรทำงาน

หลังจากลองหลายครั้งฉันพบวิธีแก้ปัญหาสำหรับกรณีของฉันและอาจช่วยคนอื่นได้ด้วย

  1. เปิดหน้าต่างเทอร์มินัลใน Android Studio
  2. ฆ่าเซิร์ฟเวอร์ ADB โดยใช้คำสั่งต่อไปนี้: adb kill-server
  3. รีสตาร์ทเซิร์ฟเวอร์ ADB โดยใช้คำสั่งต่อไปนี้: adb start-server

มันช่วยแก้ปัญหาของฉันได้


ขอบคุณบันทึกวันของฉัน .. มันมักจะแสดง 24213213 [null] แต่หลังจากการจัดการของคุณตอนนี้แสดง Samsung Galaxy ...
waza123

4

การปิดใช้งานและเปิดใช้งานการดีบักอีกครั้งในขณะที่เชื่อมต่ออุปกรณ์นั้นเป็นเคล็ดลับสำหรับฉัน


4

ผมมีปัญหาเดียวกัน.

ฉันแก้ไขได้โดยเปิดการตั้งค่าอุปกรณ์ Android จากนั้นเลือก "ปิด" จากนั้น "เปิด" สำหรับการแก้ไขข้อบกพร่อง USB


4

ผมมีปัญหาเดียวกัน. ฉันแก้ไขปัญหานี้โดยทำ

  1. Android -> SDk -> เครื่องมือแพลตฟอร์ม

2. เปิดเทอร์มินัลสำหรับ (ผู้ใช้อูบุนตู) หรือเปิด cmd (ผู้ใช้หน้าต่าง)

3. พิมพ์คำสั่ง "sudo adb kill-server"

4. ไปที่ android studio จากนั้นเชื่อมต่ออุปกรณ์อีกครั้ง


1

ใน Ubuntu การติดตั้ง adb ใช้งานได้สำหรับฉันฉันคิดว่ามีปัญหากับ android studio เริ่มต้น

ในคำสั่งใช้เทอร์มินัล

sudo apt install adb 

0

บางครั้งใน Linux (Centos 6 ในกรณีของฉัน) สาเหตุอาจเป็นเพราะคุณไม่ได้เริ่ม Android Studio ในฐานะผู้ใช้รูท โปรดรีสตาร์ทสตูดิโอ Android เป็นผู้ใช้รูทแล้วลอง!


2
นี่เป็นความคิดที่แย่มาก อย่าเริ่มแอปพลิเคชัน userland ในฐานะรูท!
agilob

0

สำหรับเครื่องอูบุนตูให้เลือกตัวเลือกการโอนและอุปกรณ์จะตรวจพบใน android studio รวมถึงการดีบัก โดยทั่วไปอุปกรณ์อยู่ในสถานะการชาร์จสำหรับ windows แต่สำหรับ Ubuntu นี่คือวิธีการทำงาน

นอกจากนี้ยังตรวจไม่พบอุปกรณ์หลายครั้งให้ทำสิ่งเดียวกันอีกครั้ง


0

จำเป็นต้องใช้โหมด MTP แต่ไม่ปรากฏขึ้นที่ด้าน USB ในการตั้งค่าการจัดเก็บบนรายการแถบเมนูคุณจะต้องตั้งค่าประเภทการเชื่อมต่อพีซีเป็น ... MTP


0

ตรวจสอบกระบวนการที่กำลังทำงานอยู่ฉันมีกระบวนการ adb หลายอย่างที่กำลังทำงานอยู่และฉันคิดว่านี่เป็นการทำให้ฉันยุ่งยาก ฆ่าพวกมันทั้งหมดแล้วรีสตาร์ท Studio HTC Sync Manager, GenyMotion และอื่น ๆ และอาจเป็นไปได้ว่าเมื่อคุณเปิดหน้าต่าง Android Studio ไว้หลายหน้าต่างอาจส่งผลให้กระบวนการ adb ขัดแย้งกันหลายขั้นตอน


0

บน Ubuntu โดยเฉพาะหรือแพลตฟอร์มอื่น ๆ กรุณาและกรุณาตรวจสอบรุ่น adb ของคุณ เครียดแค่นี้ไม่พอ ตรวจสอบให้แน่ใจว่าได้รับการอัปเดตหรือเป็นเวอร์ชันล่าสุดโดยเฉพาะอย่างยิ่งหากคำตอบด้านบนใช้ไม่ได้และลิงก์นี้นี้ก็ใช้ไม่ได้เช่นกัน

หลังจากที่ฉันอัปเดตโฟลเดอร์เครื่องมือแพลตฟอร์มของฉันซึ่งอยู่ที่

PATH_TO/Android/Sdk/platform-tools

ซึ่งยังมีการadbใช้งาน ฉันวิ่ง
adb devices

ก่อนอื่นมันจะแสดงว่าไม่ได้รับอนุญาตจากนั้น

คุณถอดปลั๊กและเสียบอุปกรณ์ Android อีกครั้ง จากนั้นโทรศัพท์ของคุณจะขออนุญาตก่อนที่ระบบจะอ่านอุปกรณ์ของคุณ


0

ในกรณีของฉันเพียงแค่มองไปที่โทรศัพท์ของฉันและทำเครื่องหมายในช่องป๊อปอัปเพื่ออนุญาตให้การดีบัก USB ทำงานให้ฉันได้


-1

ไปที่เทอร์มินัลใน android studio แล้วเรียกใช้ "adb devices" มันจะแสดงอุปกรณ์ที่เชื่อมต่อ จากนั้นเรียกใช้แอพและอุปกรณ์จะปรากฏขึ้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.