ubuntu 下 Android系统编译开 发 环境搭建

2023-11-02

官方的搭建android 系统源码 开发环境教程:
https://source.android.com/source/building (这个网址如果打不开,需要翻墙操作)

Ubuntu JDK安装配置的详细步骤:

Ubuntu JDK安装配置1.下载jdk

下载连接http://java.sun.com/javase/downloads/index.jsp

选择jdk-6u14-linux-i586.bin下载,将jdk-6u14-linux-i586.bin放置于目录/home/liyouliang/develop

Ubuntu JDK安装配置2.解压文件

◆打开终端,进入放置jdk的目录[cd /home/liyouliang/develop];

◆更改文件权限为可执行[chmod u+x jdk-6u14-linux-i586.bin]

或者[chmod 701 jdk-6u14-linux-i586.bin]

◆解压文件 [sudo ./jdk-6u14-linux-i586.bin],yes/no选择yes,执行完之后边可

以在develop目录下面看到文件夹jdk1.6.0_14

Ubuntu JDK安装配置3.配置环境变量

◆以root身份打开并编辑profile文件[sudo gedit /etc/profile]

◆在profile文件最后添加

#set java environment

JAVA_HOME=/home/liyouliang/develop/jdk1.6.0_14

export JRE_HOME=/home/liyouliang/develop/jdk1.6.0_14/jre

export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

保存并关闭

Ubuntu JDK安装配置4.重启系统

Ubuntu JDK安装配置5.查看java版本

在终端输入java -version将会显示Java版本的相关信息,Ubuntu JDK安装成功


1、下载sdk for linux  ATD也 是 在 这 里 下 載.

http://developer.android.com/sdk/index.html

2、解压缩,并更新

tar zxvf 压缩包解压

3、配置环境变量

sudo gedit  .bashrc

 

#set path for android sdk tools
export PATH=$PATH:~/android-sdk-linux/tools/
export PATH=$PATH:~/android-sdk-linux/platform-tools/

 

4、保存后,同步更新

source ~/.bashrc

4.1: 如 果没 有 进 行 第四步的 话 ,进行 步:配制adb环境变量

这时候还需要编辑一下 ~/.bashrc 文件加入adb tool的路径

sudo gedit ~/.bashrc

在末尾加入,其中红色部分就是刚下载的工具包解压的路径

export PATH=${PATH}:/home/rabbit/Documents/platform-tools



5、直接运行adb的话会显示

adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
???????????? no permissions

没有权限

6 连接平板电脑,查看USB id。

        通过USB线连接,并连接到虚拟机中。

        

     $ lsusb

        

        可以看到,设备的ID是18D1。

        $ adb devices

        

        此时,系统中检测到Android设备,但是无法识别类型。

7 创建一个udev规则文件。需要root权限。

        $ sudo su -

     # vim /etc/udev/rules.d/70-android.rules

        添加以下一行:

        SUBSYSTEM=="usb", ATTR{idVendor}=="18D1", MODE="0666", GROUP="plugdev" 

        其中的ATTR{idVendor}就是设备的ID

8 设置访问权限

        # chmod a+r /etc/udev/rules.d/70-android.rules

9 重启udev和adb服务

        # /etc/init.d/udev restart

        # adb kill-server

        # adb devices

        

        可以看到设备已经连接。

        如果依然识别不了设备,重新插拔一下设备。



64位ubuntu下面提示Cannot run program adb的问题

9 三月 2012, 2:00 下午

问题:

Failed to get the adb version: Cannot run program “/opt/android-sdk/platform-tools/adb”: error=2

原因:

64bit的系统,Android sdk只有32bit的程序,需要安装ia32-libs,才能使用。

解决方法:

sudo apt-get install ia32-lib

   如果安装不上去的话:在软件源--》其它软件--》第三方软件开发商提供去掉勾选(不要选择)



error: insufficient permissions for device

在ubuntu下,通过adb命令向手机安装软件的时候,出现error: insufficient permissions for device
。此时需要赋予超级用户权限。代码如下:
stone@stone-System-Product-Name:~/android/androidSDK/tools$ sudo -s
[sudo] password for stone: 
root@stone-System-Product-Name:~/android/androidSDK/tools# ./adb kill-server
root@stone-System-Product-Name:~/android/androidSDK/tools# ./adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
HT957KF01136    device
而后可以执行


target连上ubuntu,打adb shell后出现insufficient permissions for device错误

target连上ubuntu,打adb shell后出现insufficient permissions for device错误 

解决办法:用root权限 

Cmd代码   收藏代码
  1. sudo -s  
  2. ./adb kill-server  
  3. ./adb devices  
ubuntu 下解决android ddms连接permissions问题
2010年11月13日 星期六 22:37
安装eclipse, android,ADT, sdk后就可以调试了,但在连接DDMS时会有这样的问题“DDMS: device (????????????) request rejected: insufficient permissions...“,有问题找google,搜索了下都说是要建立一个USB设备文件:/etc/udev/rules.d/51-android.rules,内容如下:

SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9018",MODE="0666"

其中的idvendor idProduct指的是USB的ID可以使用lsusb查询得到。
比如我的是:
lsusb

Bus 001 Device 005: ID 05c6:9018 Qualcomm, Inc. 

ID 05c6 就是idVendor ,9018就是 idProduc

=====================================================================================================================

环境搭建完成后开始编译 android 源码

http://source.android.com/source/initializing.html

执行 命 令:

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
  zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
  x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
  libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
  libxml2-utils xsltproc

系统--->系统管理-->新立得软件包管理器--->在 搜索位置:uboot-mkimage 进行下载或更新


在ubuntu 12.04 中运行adb 会遇到:

sdk/platform-tools/adb: 没有那个文件或目录

4位系统,Ubuntu11.04,搭建JDK,Android环境,把android SDK复制过来后,里面的adb和其它命令的都不能使用。

错误提示:android-sdk-linux_86/platform-tools/adb: 没有那个文件或目录。

解决方案:由于是64bit的系统,而Android sdk只有32bit的程序,需要安装ia32-libs,才能使用。

运行如下命令:

  1. sudo apt-get install ia32-libs 
ubuntu 12.04 64位设置兼容32位的实现
 
在ubuntu12.04上,要运行32的程序,需要安装32位的兼容库。
 
以前在10.04上成功安装过,方法是
sudo apt-get install ia32-libs
但是在12.04上遇到了困难,遇到下面这种错误
$ sudo apt-get install ia32-libs
  www.2cto.com  
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成
 
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
 
下列软件包有未满足的依赖关系:
 ia32-libs : 依赖: ia32-libs-multiarch
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
网上也没有找到合适的方法。
 
最后还是用google(还是比baidu强啊),虽然没有找到该库的安装方法,但是找到了解决方法:即自己安装需要的32位库
$ sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386
 
我本意是运行adb的。运行adb时,发现缺乏libncurses5库,自己动手,丰衣足食,比葫芦画瓢,sudo apt-get install libncurses5:i386
在64位下,gcc默认编译代码位64位的,但是,如果你想编译位的,可以用gcc -m32选项,来设置。  www.2cto.com  
不过,不幸的是,会出现错误,说找不到 /usr/include/features.h文件什么的。google一下,发现用这种方法:
sudo apt-get install g++-multilib
就可以了。
OK,这样总算都跑起来了!


List of devices attached

分类:Ubuntu应用 2012-12-29 09:461447人阅读 评论(0)收藏 举报

1.环境:ADB  over USB on Ubuntu12.04(64-bit) PC.

2.问题: adb devices后只显示“List of devices attached”,不罗列设备,确定usb已经连上。如下图:


3.解决方法:

1)首先确定PC上有可用的SDK adb工具,若没有请在http://developer.android.com/sdk/index.html下载对应版本。

2)确定android phone能通过usb连接到PC,可以用lsusb来查看。

注意:一下操作是在root权限的,我是以root身份登录的,如果不是需要sudo su切换到root权限。

3)在PC下找到文件 ~/.android/adb_usb.ini,若没有新建:vi ~/.android/adb_usb.ini

4)添加idVender:echo "idVender" > ~/.android/adb_usb.ini,其中的idVebder是lsusb显示内容的ID后的前一个数值。注意:前面要加0x 。如:echo "0x1d6b" > ~/.android/adb_usb.ini 。

5)确定echo添加的idVender已经生效:cat /root/.android/adb_usb.ini

6)连接usb后重启adb-server:

      adb kill-server

      adb start-server

7)验证:adb devices






本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu 下 Android系统编译开 发 环境搭建 的相关文章

  • Android-如何将 android.net.Uri 对象转换为 java.net.URI 对象?

    我正在尝试获得一个FileInputStream用户从图片库中选择的图像上的对象 这是安卓URI由返回android provider MediaStore Images Media INTERNAL CONTENT URI content
  • Android主线程的IO操作

    我的问题有两个 是否建议在 Android 的主线程上进行 IO 操作 或者它是否有可能导致我的应用程序崩溃 如果在主线程上执行 IO 操作不理想 我可以使用哪些其他框架 以便当我的应用程序加载时它可以执行一些基本的 IO 文件读取并将值存
  • 如何使用 gradle 从 3 个子模块构建 1 个 jar

    I have 安卓工作室3 gradle 4 1 梯度工具3 classpath com android tools build gradle 3 0 1 当我有一个模块并使用 gradle 工具 2 时 我使用了 task makeJar
  • Android 应用程序安装失败:包 com.my.app 在条目 AndroidManifest.xml 处没有证书

    在 Android Studio 中 我生成了带有密钥库等的签名 APK 将 APK 安装到设备上时失败 并显示 无法安装应用程序 并且在 Android Monitor 中我看到以下行 Package com my app has no
  • 在 Android 上使用 AT 命令与调制解调器对话

    我试图与三星 Galaxy s2 plus 和华为 p1 xl u9200 调制解调器发送 AT 命令 但无法得到任何结果 我使用 adb shell 发送命令并使用 logcat 查看日志 在三星 当我执行 cat 时 proc tty
  • 使用 Fragment 在工具栏中实现 SearchView

    当前情况 我的应用程序主页由导航抽屉组成 因此我将视图作为片段加载 我的工具栏中也有搜索图标 我在中实现了它menu xml 下一步我实施了SearchView通过以下问题的答案来获取搜索图标在工具栏中实现搜索 https stackove
  • socket.io xhr 在连接缓慢时出现错误(3G 移动网络)

    当我在 3G 移动网络 互联网连接速度慢 上测试我的真实聊天应用程序时 Socket io反复断开然后重新连接 我已经记录了原因 它说 xhr post error 这提高了 transport error 然后断开连接 我可以知道什么意思
  • 当满足条件时,如何以编程方式更改 ImageButton src 目标?

    我有一个学校项目 我正在尝试开发一个手电筒应用程序 对于开 关 ImageButton 我想要 4 个自定义图像 如果手电筒关闭 turn on png 默认 turn on pressing png 按下状态 true 如果手电筒打开 t
  • 带有 Android 支持库 v7 的 Maven Android 插件

    我使用 maven android plugin 构建我的 android 应用程序 它依赖于 android 支持库 v4 和 v7 由于我没有找到如何从developer android com下载整个sdk 因此我无法使用maven
  • 为什么反射会减慢Android手机的速度

    我多次读到反射会降低手机性能 这有多真实 例如 在我的例子中 我从 Web 服务获取一些参数 这些参数与我在 Android 应用程序中的类的参数同名 所以我只是使用java字段和反射设置这些参数的值 它似乎并没有降低性能 有人可以向我解释
  • 覆盖 Android 中的电源按钮

    我正在开发一个应用程序 其中我需要在按下电源按钮时执行一个操作 但不幸的是我无法处理按下电源按钮时的操作 我尝试使用 onKeyDown 和dispatchKeyEvent 方法 但似乎没有任何效果 任何人都可以建议我解决这个问题的任何其他
  • ADB TCPIP 连接问题

    我有两台 Galaxy S3 其中一个已扎根 另一个则未扎根 因此 当我尝试通过本地网络连接它们时 计算机可以看到已root的计算机 但是正常的就卡在tcpip这一步了 所以 我写 adb tcpip 5555 It says restar
  • 需要 Android webview window.open() 和 window.close() 的信息

    我正在开发一个安卓应用程序 这是我网站的 WebView 该网站包含一个弹出按钮 单击该按钮后 将打开一个新窗口并显示内容 该链接可以来自外部站点 然而 当我实现此操作时 新选项卡正在打开 之后它会弹出以打开浏览器 尽管在 Web 视图中打
  • React Native Expo StackNavigator 重叠通知栏

    我正在尝试为我的 React Native Expo 应用程序实现导航栏 这里有一个问题 dependencies expo 18 0 3 react 16 0 0 alpha 12 react native 0 45 1 react na
  • 当 minifyEnabled 为 true 时 Android 应用程序崩溃

    我正在使用多模块应用程序 并且该应用程序崩溃时minifyEnabled true in the installed模块的build gradle 以下是从游戏控制台检索到的反混淆堆栈跟踪 FATAL EXCEPTION Controlle
  • Android模拟器中的网络访问

    我试图通过我的 Android 应用程序访问互联网 但我既成功又失败 我在构建应用程序时启动模拟器 并且应用程序安装得很好 我可以使用浏览器访问互联网 但是 当我尝试这个小代码片段时 InetAddress inet try inet In
  • 哪个视图最亮?

    在Android中 哪个是轻量级视图 例如 View Textview Edittext 等 在某些情况下 我们需要使用视图来填充区域而不向用户显示视图 同时屏幕加载速度应该很快 您可以使用空间 android widget Space S
  • Android:GestureDetector 无法与选项卡(TabActivity、Tabwidget)一起工作(gestureDetector.onTouchEvent(event) 始终为 false)

    我已经用不同的子活动实现了 TabActivity intent new Intent setClass this MyChildTabActiviy class Initialize a TabSpec for each tab and
  • 更改“/usr/bin/”的所有权:不允许操作

    我刚刚改变了我的所有者 犯了一个巨大的错误 usr bin from root对一个普通人user 每当我尝试执行时 sudo chown root usr bin这给了我 chown changing ownership of usr b
  • 检查应用程序是否在 Android Market 上可用

    给定 Android 应用程序 ID 包名称 如何以编程方式检查该应用程序是否在 Android Market 上可用 例如 com rovio angrybirds 可用 而 com random app ibuilt 不可用 我计划从

随机推荐

  • ajax调用java程序,从微信小程序到鸿蒙JS开发-JS调用Java

    除轻量级智能穿戴设备 现鸿蒙支持的手机 汽车 TV 手表 平板等属于富鸿蒙 在JS语言的项目中也有Java模块 并提供了JS跨语言调用Java方法的技术 现需要实现查看商品评论时 统计出长评 中评和短评的比例 这里将评论数据请求来后调用Ja
  • linux下内核态锁与用户态锁详细介绍

    1 内核态下锁 1 1 spinlock t spinlock t成为自旋锁 它用在临界区代码非常少的情况下 自旋锁不会引起调用者睡眠 如果自旋锁已经被别的执行单元保持 调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁 如果释放了该
  • 播放声音

    声音类型 load 上料 switchs 换装 changes 换程 private enum Sound load switchs changes SoundPlayer sp new SoundPlayer
  • 在.NET中杀死Word,Excel等进程

    下面的方法可以直接调用 private void KillProcess string processName System Diagnostics Process myproc new System Diagnostics Process
  • 【Learning RAW-to-sRGB Mappings with Inaccurately Aligned Supervision通过不准确对齐的监督学习 RAW 到 sRGB 的映射】

    摘要 学习 RAW 到 sRGB 映射近年来引起了越来越多的关注 其中训练输入的原始图像以模仿另一台相机捕获的目标 sRGB 图像 然而 严重的颜色不一致使得生成输入原始和目标 sRGB 图像的良好对齐训练对非常具有挑战性 虽然使用不准确对
  • 解决java解析XML文件时的“伪属性名称”问题

    解决java解析XML文件时的 伪属性名称 问题 一定是xml文件写错了格式
  • apk部分手机安装失败_安卓手机安装软件失败的4种常见原因和解决办法

    安卓手机安装软件是普通人都会做的事情 不过这也是有可能会出现问题的 比如安卓手机安装软件失败了 这要怎么解决 安卓手机安装软件失败是一些新手用户可能会遇到的问题 虽然有很多方面的原因 不过大体上分为软件和硬件2种情况 下面就整理一些解决方法
  • Unity初学者对物体移动的总结

    Unity小白笔记文章 请大家多多指教 关于Unity3D控制物体移动的常用方法 首先控制物体移动即控制物体的空间坐标变化 在这里首先我们要知道Input输入事件 一般大家先想到的都是按一个按键去控制物体移动 Unity里也给我们提供了这种
  • Web前端之如何描述自己做过的项目

    在面试时 经过寒暄后 一般面试官会让介绍项目经验 常见的问法是 说下你最近的 或最拿得 出手的 一个项目 根据我们的面试经验 发现有不少候选人对此没准备 说起来磕磕巴巴 甚至有人说出项目经验从时间 段或技术等方面和简历上的不匹配 这样就会造
  • Unity 弓箭射靶游戏实践

    一 实现思路 根据之前的飞碟工厂进行改变 在射出弓箭手上没有弓箭之后重新生成新的弓箭 并将射出的弓箭在一定时间后进行回收 在右下角通过小窗口展示靶子的情况 射中不同的环数给予不同得分 二 主要涉及技术 物理引擎的使用 游戏对象的生产与回收
  • 关于autorelease pool一个较好的理解

    如果你能够真正的理解autorelease 那么你才是理解了Objective c的内存管理 Autorelease实际上只是把对release的调用延迟了 对于每一个Autorelease 系统只是把该Object放入了当前的Autore
  • 第二十三章 模块代码编写基础

    模块的创建 python中的所有 py文件都能做为模块 模块文件名 模块的命名应该遵循一般变量名的命名规则 模块的使用 import语句 import语句直接列出一个或多个需要加载的模块的名称 以逗号分隔 因为它用一个名称引用整个模块 im
  • Docker配置本地镜像与容器的存储位置

    使用find命令找到大于指定大小的文件 find type f size 10G 排除某个目录 find path media xww type f size 10G 修改Docker本地镜像与容器的存储位置的方法 方法一 软链接 默认情况
  • Qt程序crash信息的捕捉与跟踪(qt-mingw)

    在用qt编写程序时经常会遇到崩溃问题 如果抓取不到crash堆栈信息就会对崩溃问题束手无策 只能对其进行复现 推断 目录 一般解决crash问题时有如下步骤 如何执行以上3步骤 下面我详细介绍如何操作 步骤1 步骤2 步骤3 网友评论 一般
  • js取消默认事件和事件绑定

    1 默认事件 浏览器本事具备的一些功能 如鼠标右键菜单 a标签跳转页面 如果要阻止这些默认行为 可以用return false w3c中定义了ev preventDefault 这个不兼容IE11以下
  • Java 内存可见性与volatile

    在多核系统中 处理器一般有一层或者多层的缓存 这些的缓存通过加速数据访问 因为数据距离处理器更近 和降低共享内存在总线上的通讯 因为本地缓存能够满足许多内存操作 来提高CPU性能 如图 处理器的多层缓存模型 JVM需要实现跨平台的支持 它需
  • Acwing-1112. 迷宫

    include
  • [JavaScript][异步]Promise 构造函数是同步执行还是异步执行,那么 then 方法呢

    JavaScript 异步 Promise 构造函数是同步执行还是异步执行 那么 then 方法呢 const promise new Promise resolve reject gt console log 1 resolve cons
  • MATLAB查看变量的类型

    MATLAB查看变量的类型 gt gt a 100 a 100 gt gt class a ans double gt gt single a ans single 100 gt gt class ans ans single class
  • ubuntu 下 Android系统编译开 发 环境搭建

    官方的搭建android 系统源码 开发环境教程 https source android com source building 这个网址如果打不开 需要翻墙操作 Ubuntu JDK安装配置的详细步骤 Ubuntu JDK安装配置1 下