热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android联机调试时,解决nopermissions的方法

昨天我在Linux系统下进行Android的联机调试时,把手机插上,发现eclipse的DDMS里的devices列表居然是一串“?????”的字符串,换了台机器也是如此。一直专注

昨天我在Linux系统下进行Android的联机调试时,把手机插上,发现eclipse的DDMS里的devices列表居然是一串“?????”的字符串,换了台机器也是如此。

一直专注在iOS开发上,现在需要开发一个Android+phonegap的应用,困难重重。

问了公司那些专业从事Android开发的员工,也没有解决问题。

于是只有google能帮我了,查了一堆的方法,看了很多的文章。终于在stackoverflow下找到了方案,我采用的是第二种永久的解决方案。我转过来并用中文叙述一下,希望能帮助到遇到类似问题的朋友。

 

原文如下:

原文地址:http://ptspts.blogspot.co.il/2011/10/how-to-fix-adb-no-permissions-error-on.html

在linux系统下进行Android调试时,运行adb devices命令会出现"???????  no
permissions"等字样,本博客就是专门解决这个问题的。这个解决方案已经经过测试,并能再Ubuntu
Lucid下工作,但也应该可以在其他Ubuntu等linux版本中类似问题。

官方帮助中心有很多起作用和不起作用的答案和建议。这个问题的根本就是在USB调试时,当前用户没有足够的权限去操作USB设备文件。

第一个解决方案如下:



  1.   sudo killall adb    //终端命令,杀掉所有运行的adb服务

  2.   断开设备

  3.   等几分钟后重新插上设备

  4.   sudo adb devices    //终端命令,于是adb取得最高权限

 

 

另外,这里有一个长期的解决方案

1. 创建一个文件android.rules,比如/tmp/android.rules。粘贴下面的内容到android.rules



SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="0e79", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="0502", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="0b05", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="413c", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="0489", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="091e", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="18d1", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="12d1", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="24e3", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="2116", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="0482", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="17ef", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="1004", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="22b8", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="0409", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="2080", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="0955", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="2257", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="10a9", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="1d4d", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="0471", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="04da", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="05c6", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="1f53", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="04dd", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="0fce", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="0930", MODE="0666"
SUBSYSTEM
=="usb", ATTRS{idVendor}=="19d2", MODE="0666"

2.执行以下命令:



sudo cp /tmp/android.rules /etc/udev/rules.d/51-android.rules
sudo chmod 644 /etc/udev/rules.d/51-android.rules
sudo chown root. /etc/udev/rules.d/51-android.rules
sudo service udev restart
sudo killall adb

3.断开设备,几分钟后重新连接设备

 

最后运行下面命令,就可以发现设别有权限进行访问了


adb devices

 

 

注意的地方:



  • 如果上面永久解决方案不起作用,那么可以尝试用USER="$LOGINNAME"来替代MODE="0666",$LOGINNAME是你的登陆用户名。你可以使用‘-nu‘命令来查看这个用户名。

  • 在Ubuntu Precise版本中,文件名应该改成70-android.rules。


推荐阅读
  • YB02 防水车载GPS追踪器
    YB02防水车载GPS追踪器由Yuebiz科技有限公司设计生产,适用于车辆防盗、车队管理和实时追踪等多种场合。 ... [详细]
  • MySQL锁机制详解
    本文深入探讨了MySQL中的锁机制,包括表级锁、行级锁以及元数据锁,通过实例详细解释了各种锁的工作原理及其应用场景。同时,文章还介绍了如何通过锁来优化数据库性能,避免常见的并发问题。 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • python开发mysql:单表查询&多表查询
    一单表查询,以下是表内容二多表查询,一下是表内容三总结&表创建过程单 ... [详细]
  • 本文介绍了如何利用Java中的URLConnection类来实现基本的网络爬虫功能,包括向目标网站发送请求、接收HTML响应、解析HTML以提取所需信息,并处理可能存在的递归爬取需求。 ... [详细]
  • Ubuntu GamePack:专为游戏爱好者打造的Linux发行版
    随着Linux系统在游戏领域的应用越来越广泛,许多Linux用户开始寻求在自己的系统上畅玩游戏的方法。UALinux,一家致力于推广GNU/Linux使用的乌克兰公司,推出了基于Ubuntu 16.04的Ubuntu GamePack,旨在为Linux用户提供一个游戏友好型的操作环境。 ... [详细]
  • 本文详细介绍了ActivityManagerService (AMS) 的工作原理及其在Android系统中的重要角色。AMS作为system_server进程的一部分,在系统启动时加载,负责管理和协调应用程序中的Activity和服务(Service)。文章将通过具体的接口图和通信流程,帮助读者更好地理解AMS的工作机制。 ... [详细]
  • EasyMock实战指南
    本文介绍了如何使用EasyMock进行单元测试,特别是当测试对象的合作者依赖于外部资源或尚未实现时。通过具体的示例,展示了EasyMock在模拟对象行为方面的强大功能。 ... [详细]
  • MacOS 重装指南
    本文详细介绍了如何通过U盘启动并重新安装MacOS,包括遇到安装问题时的解决方案。 ... [详细]
  • 深入解析IGMP各版本特性及其演进
    本文详细探讨了Internet组管理协议(IGMP)的不同版本,包括IGMPv1的基础功能、IGMPv2的增强特性和IGMPv3的重要改进。特别分析了IGMPv3如何支持特定源组播(SSM)模型,并介绍了各版本之间的主要差异。 ... [详细]
  • Java与JSON互转:实现JSON到Java对象及Java对象到JSON的转换
    本文详细介绍了如何在Java中实现JSON数据与Java对象之间的相互转换,包括代码示例和常见问题解决方法。 ... [详细]
  • OBS (Open Broadcaster Software) 架构解析
    本文介绍 OBS(Open Broadcaster Software),一款专为直播设计的开源软件。文章将详细探讨其技术架构、核心组件及其开发环境要求。 ... [详细]
  • 本文详细介绍了在使用Socket进行网络编程时,遇到链接器错误`undefined reference to WSAStartup@8`的解决方案,适用于多种开发环境。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
author-avatar
BrucelLi
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有