android - Eclipse - 为什么普通用户的 Android SDK 出错而不是 root 用户?

标签 android eclipse

为什么以普通用户身份启动 Eclipse 时不会出现此错误,而以 sudo 身份启动时却不会:

enter image description here

我已经检查了所有我能想象到的可能会受到影响的目录的权限,并将其更改为我的用户和组 ID。

这些是我熟悉的所有领域的根目录:

Folder                   Specification
-------------------------------------------------------------
/opt/android/sdk          Android SDK
/opt/eclipse/eclipse      Eclipse
~/myeclipse               Eclipse specific configuration area
~/workspace               Source workspace

这些是确保分配我的用户和组 ID 的命令:

$ sudo chown -R ljames:ljames /opt/android/sdk
$ sudo chown -R ljames:ljames /opt/eclipse/eclipse
$ sudo chown -R ljames:ljames ~/myeclipse
$ sudo chown -R ljames:ljames ~/workspace

有人能告诉我还有什么可能导致这种可能吗 权限问题?

我还在所有子目录上执行了这个命令,以查找不属于我的用户 ID 的任何文件或目录。

$ sudo find /opt/android/sdk ! -user ljames 
$ sudo find /opt/eclipse/eclipse ! -user ljames 
$ sudo find ~/myeclipse ! -user ljames 
$ sudo find ~/workspace ! -user ljames 

最佳答案

很明显,这是一个权限问题。 Root 不受权限的困扰;其他人是。实际上,有一个异常(exception):权限字段 (di_flags & ~(S_IFMT)) 中的至少一个执行位 S_IXUSR|S_IXGRP|S_IXOTH 必须打开,以便用户 - 甚至 ROOT - 执行程序。这曾经适用于“执行”(即搜索)目录,但现在不再适用。请注意,我在括号中加上了 S_IFMT,因为在表达式中加入宏时,人们应该始终保持高度防御:它们可能是隐蔽错误的来源。

我怀疑这个问题可能表面上很微妙,但如果您知道目录权限的工作原理,实际上就不是这样。我愿意打赌,某处的某个目录对于您的非 root 程序员是可搜索的,但不可读。不同之处在于,“搜索”使您能够在目录中找到已知名称的条目,而“阅读”使您能够像打开目录一样浏览目录。为了发现可以顺序扫描的整组文件,例如 *.java,例如给定函数的主体,包含的目录必须是可读的和可搜索的。

关于android - Eclipse - 为什么普通用户的 Android SDK 出错而不是 root 用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38164656/

相关文章:

java - Eclipse 调试未打开窗口

java - Eclipse 下载包中没有服务器选项

java - 我无法让 Android XML 布局左侧的图像正确显示。我在这里做错了什么?

android - viewPager.setCurrentItem(position, false) 选择,但不滚动到突出显示的选项卡

Android 左右两侧滑动的滑动菜单

android - 具有自定义基于 View 类的手势检测器

Phonegap 上的 Android Webview

eclipse - 如何增加 Eclipse 输出控制台的容量?

android - SDK 管理器执行 :114 java not found error in Ubuntu while running SDK manager

java - ListView 的 onclicklistener