安装openstack时碰到的错误

2023-05-16

文章目录

  • 目录
    • 安装keystone identity时遇到的错误信息
    • glance验证操作错误信息
    • 计算节点安装openstack-nova-compute找不到包
    • openstack-nova-compute安装后服务起不来
    • openstack-nova-compute安装后验证没有输出
    • dashboard安装后打不开
    • OpenStack云平台涉及到的相关服务进程的日志记录的默认存放地址
    • 总结

目录

安装keystone identity时遇到的错误信息

[gsl@controller ~]$ openstack service create  --name keystone --description "OpenStack Identity" identity
An unexpected error prevented the server from fulfilling your request. (HTTP 500) (Request-ID: req-6f8c5f03-4ee1-494e-9cd1-3d86db0c5df5)

日志信息

[root@controller ~]#  tail -f /var/log/keystone/keystone.log

2017-12-05 10:43:23.791 1176 ERROR keystone.common.wsgi ProgrammingError: (pymysql.err.ProgrammingError) (1146, u"Table 'keystone.service' doesn't exist") [SQL: u'INSERT INTO service (id, type, enabled, extra) VALUES (%(id)s, %(type)s, %(enabled)s, %(extra)s)'] [parameters: {'type': u'identity', 'enabled': 1, 'id': '8b12e86660644af092018fb301b3d3cc', 'extra': '{"description": "OpenStack Identity", "name": "keystone"}'}]
2017-12-05 10:43:23.791 1176 ERROR keystone.common.wsgi

处理

[root@controller ~]#  keystone-manage db_sync

再执行

[gsl@controller ~]$ openstack service create  --name keystone --description "OpenStack Identity" identity
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Identity               |
| enabled     | True                             |
| id          | 0a726b6de76547d7be6ea7716d6fdb6d |
| name        | keystone                         |
| type        | identity                         |
+-------------+----------------------------------+

glance验证操作错误信息

[gsl@controller ~]$ openstack image create "cirros" \
>   --file cirros-0.3.5-x86_64-disk.img \
>   --disk-format qcow2 --container-format bare \
>   --public
[root@controller glance]# tail api.log
2017-12-05 17:26:34.100 2139 INFO eventlet.wsgi.server [req-f13a0aa2-0814-4457-b173-391da738451f 73b048955ccf40f0b28dbd5f388b0901 a3f9b68bb68042abbe1b53131c31fe74 - 2806de7ce26d448d809b82cda6afdfac 2806de7ce26d448d809b82cda6afdfac] 10.0.0.11 - - [05/Dec/2017 17:26:34] "GET /v2/schemas/image HTTP/1.1" 200 4357 0.675650
2017-12-05 17:26:34.318 2139 WARNING oslo_db.sqlalchemy.engines [req-53e3d296-72f6-4665-94aa-27940689ccd6 73b048955ccf40f0b28dbd5f388b0901 a3f9b68bb68042abbe1b53131c31fe74 - 2806de7ce26d448d809b82cda6afdfac 2806de7ce26d448d809b82cda6afdfac] URL mysql://glance:***@localhost/glance does not contain a '+drivername' portion, and will make use of a default driver.  A full dbname+drivername:// protocol is recommended. For MySQL, it is strongly recommended that mysql+pymysql:// be specified for maximum service compatibility
2017-12-05 17:26:34.335 2139 ERROR glance.common.wsgi [req-53e3d296-72f6-4665-94aa-27940689ccd6 73b048955ccf40f0b28dbd5f388b0901 a3f9b68bb68042abbe1b53131c31fe74 - 2806de7ce26d448d809b82cda6afdfac 2806de7ce26d448d809b82cda6afdfac] Caught error: (_mysql_exceptions.OperationalError) (1045, "Access denied for user 'glance'@'localhost' (using password: YES)"): OperationalError: (_mysql_exceptions.OperationalError) (1045, "Access denied for user 'glance'@'localhost' (using password: YES)")


数据库拒绝访问,查看配置,编辑文件 /etc/glance/glance-api.conf

[database]
...
connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance

这一项漏加,添加后,重新执行

# su -s /bin/sh -c "glance-manage db_sync" glance
/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py:1328: OsloDBDeprecationWarning: EngineFacade is deprecated; please use oslo_db.sqlalchemy.enginefacade
  expire_on_commit=expire_on_commit, _conf=conf)
INFO  [alembic.runtime.migration] Context impl MySQLImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade  -> liberty, liberty initial
INFO  [alembic.runtime.migration] Running upgrade liberty -> mitaka01, add index on created_at and updated_at columns of 'images' table
INFO  [alembic.runtime.migration] Running upgrade mitaka01 -> mitaka02, update metadef os_nova_server
INFO  [alembic.runtime.migration] Running upgrade mitaka02 -> ocata01, add visibility to and remove is_public from images
INFO  [alembic.runtime.migration] Running upgrade ocata01 -> pike01, drop glare artifacts tables
INFO  [alembic.runtime.migration] Context impl MySQLImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
Upgraded database to: pike01, current revision(s): pike01

重新验证操作

[gsl@controller ~]$ openstack image create "cirros" \
>   --file cirros-0.3.5-x86_64-disk.img \
>   --disk-format qcow2 --container-format bare \
>   --public
+------------------+------------------------------------------------------+
| Field            | Value                                                |
+------------------+------------------------------------------------------+
| checksum         | f8ab98ff5e73ebab884d80c9dc9c7290                     |
| container_format | bare                                                 |
| created_at       | 2017-12-05T10:58:58Z                                 |
| disk_format      | qcow2                                                |
| file             | /v2/images/9df2e55e-b7e8-46b0-89f6-01a97deed3a5/file |
| id               | 9df2e55e-b7e8-46b0-89f6-01a97deed3a5                 |
| min_disk         | 0                                                    |
| min_ram          | 0                                                    |
| name             | cirros                                               |
| owner            | a3f9b68bb68042abbe1b53131c31fe74                     |
| protected        | False                                                |
| schema           | /v2/schemas/image                                    |
| size             | 13267968                                             |
| status           | active                                               |
| tags             |                                                      |
| updated_at       | 2017-12-05T10:58:59Z                                 |
| virtual_size     | None                                                 |
| visibility       | public                                               |
+------------------+------------------------------------------------------+

计算节点安装openstack-nova-compute找不到包

按照官方文档的要求进行的安装,出现这个问题

[root@compute1 yum.repos.d]# yum install openstack-nova-compute
Loaded plugins: fastestmirror, langpacks
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
No package openstack-nova-compute available.
Error: Nothing to do

解决办法:
先安装centos-release-openstack-pike,这个包应该是先决条件,其他节点安装也遇到同样问题,官方文档没有看到,后安装openstack-nova-compute

yum install centos-release-openstack-pike.x86_64
yum update
yum install openstack-nova-compute

openstack-nova-compute安装后服务起不来

日志信息

cat /var/log/nova/nova-compute.log
2017-12-06 19:11:12.267 32658 ERROR nova     (class_id, method_id), ConnectionError)
2017-12-06 19:11:12.267 32658 ERROR nova AccessRefused: (0, 0): (403) ACCESS_REFUSED - Login was refused using authentication mechanism AMQPLAIN. For details see the broker logfile.

broker logfile显示openstack用户没有认证信息,

[root@controller ~]cat /var/log/nova/nova-api.log

重新添加认证信息

[root@controller ~]# rabbitmqctl list_user_permissions
Error: list_user_permissions expects a username argument, but none provided.
[root@controller ~]# rabbitmqctl list_user_permissions openstack
Listing permissions for user "openstack" ...
Error: {error,{no_such_user,<<"openstack">>}}
[root@controller ~]# rabbitmqctl add_user openstack *****
Creating user "openstack" ...
[root@controller ~]# rabbitmqctl list_user_permissions openstack
Listing permissions for user "openstack" ...
[root@controller ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...
[root@controller ~]# rabbitmqctl list_user_permissions openstack
Listing permissions for user "openstack" ...
/       .*      .*      .*

查看服务,正常启动

[root@compute1 ~]# systemctl status openstack-nova-compute.service
● openstack-nova-compute.service - OpenStack Nova Compute Server
   Loaded: loaded (/usr/lib/systemd/system/openstack-nova-compute.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2017-12-07 08:04:19 CST; 18min ago
 Main PID: 1069 (nova-compute)
   CGroup: /system.slice/openstack-nova-compute.service
           └─1069 /usr/bin/python2 /usr/bin/nova-compute

Dec 07 08:04:12 compute1.localdomain systemd[1]: Starting OpenStack Nova Compute Server...
Dec 07 08:04:19 compute1.localdomain nova-compute[1069]: Option "rpc_backend" from group "DEFAULT" is deprecate...re.
Dec 07 08:04:19 compute1.localdomain systemd[1]: Started OpenStack Nova Compute Server.
Hint: Some lines were ellipsized, use -l to show in full.
[root@compute1 ~]#

openstack-nova-compute安装后验证没有输出

错误信息

2017-12-06 19:29:30.155 6430 ERROR nova.compute.api [req-1e893fdc-97f1-45f1-a332-1083aeedd46a 73b048955ccf40f0b28dbd5f388b0901 a3f9b68bb68042abbe1b53131c31fe74 - 2806de7ce26d448d809b82cda6afdfac 2806de7ce26d448d809b82cda6afdfac] No cells are configured, unable to continue

没有cell

] No authentication information found for placement API. Placement is optional in Newton, but required in Ocata. Please enable the placement service before upgrading.

数据库查看

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| glance             |
| information_schema |
| keystone           |
| mysql              |
| nova               |
| nova_api           |
| performance_schema |
| test               |
+--------------------+
8 rows in set (0.00 sec)
MariaDB [(none)]> CREATE DATABASE nova_cell0;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| glance             |
| information_schema |
| keystone           |
| mysql              |
| nova               |
| nova_api           |
| nova_cell0         |
| performance_schema |
| test               |
+--------------------+

没有placement

[gsl@controller ~]$ openstack user create --domain default --password-prompt placement
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | 2806de7ce26d448d809b82cda6afdfac |
| enabled             | True                             |
| id                  | 6b090de2030049a885263321bb5f8ce6 |
| name                | placement                        |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+
[gsl@controller ~]$ openstack role add --project service --user placement admin
[gsl@controller ~]$ openstack service create --name placement --description "Placement API" placement
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Placement API                    |
| enabled     | True                             |
| id          | cee7287d012a4c8ebfdd9dff1bd06b20 |
| name        | placement                        |
| type        | placement                        |
+-------------+----------------------------------+

重新验证

[gsl@controller ~]$ openstack compute service list
+----+------------------+------------------------+----------+---------+-------+----------------------------+
| ID | Binary           | Host                   | Zone     | Status  | State | Updated At                 |
+----+------------------+------------------------+----------+---------+-------+----------------------------+
|  1 | nova-consoleauth | controller.localdomain | internal | enabled | up    | 2017-12-07T02:29:15.000000 |
|  2 | nova-conductor   | controller.localdomain | internal | enabled | up    | 2017-12-07T02:29:15.000000 |
|  4 | nova-scheduler   | controller.localdomain | internal | enabled | up    | 2017-12-07T02:29:10.000000 |
|  7 | nova-compute     | compute1.localdomain   | nova     | enabled | up    | 2017-12-07T02:29:10.000000 |
+----+------------------+------------------------+----------+---------+-------+----------------------------+

[root@controller ~]# su -s /bin/sh -c "nova-manage db sync" nova
/usr/lib/python2.7/site-packages/pymysql/cursors.py:166: Warning: (1831, u'Duplicate index `block_device_mapping_instance_uuid_virtual_name_device_name_idx`. This is deprecated and will be disallowed in a future release.')
  result = self._query(query)
/usr/lib/python2.7/site-packages/pymysql/cursors.py:166: Warning: (1831, u'Duplicate index `uniq_instances0uuid`. This is deprecated and will be disallowed in a future release.')
  result = self._query(query)
[root@controller ~]# nova-manage cell_v2 list_cells
+-------+--------------------------------------+------------------------------------+-------------------------------------------------+
|  Name |                 UUID                 |           Transport URL            |               Database Connection               |
+-------+--------------------------------------+------------------------------------+-------------------------------------------------+
| cell0 | 00000000-0000-0000-0000-000000000000 |               none:/               | mysql+pymysql://nova:****@controller/nova_cell0 |
| cell1 | 0e936aa4-204d-494d-8cd9-b8915ff8f5b4 | rabbit://openstack:****@controller |    mysql+pymysql://nova:****@controller/nova    |
+-------+--------------------------------------+------------------------------------+-------------------------------------------------+

dashboard安装后打不开

解决办法:
编辑:/etc/httpd/conf.d/openstack-dashboard.conf
在WSGISocketPrefix run/wsgi下面加一行代码:
WSGIApplicationGroup %{GLOBAL}
保存,重启httpd服务。

OpenStack云平台涉及到的相关服务进程的日志记录的默认存放地址

服务进程路径或文件

nova 服务(nova-api, nova-scheduler, nova-objectstore,nova-network,nova- compute,nova-volume)/var/log/nova(每项服务有对应的日志文件,请对应日志文件的文件名进行日志观察)

glance服务(glance-api,glance-regisry)/var/log/glance(每项服务有对应的日志文件,请对应日志文件的文件名进行日志观察)

keystone服务 /var/log/keystone/keystone.log,/var/log/syslog

rabbitmq服务 /var/log/rabbitmq

mysql服务 /var/log/mysql

libvirt服务 /var/log/libvirt

swift服务 /var/log/syslog

memcached服务 /var/log/memcached.log

正常命令 keystone user-list
debug命令为:
keystone --debug user-list

总结

官方安装指导,变来变去,需要总结多个版本来发现问题。
修改配置一定要小心。

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

安装openstack时碰到的错误 的相关文章

  • kolla 部署 openstack v1.0

    准备 hosts配置 cat lt lt EOF gt gt etc hosts 192 168 179 90 kolla ansible controller 192 168 179 91 kolla ansible compute EO
  • OpenStack中制作和上传Docker镜像

    一 在docker节点新建dockerfile文件 vim dockerfie 二 文件里面填 无需任何修改 FROM ubuntu 14 04 MAINTAINER ZhangKe lt 294667739 qq com gt RUN a
  • Pecemaker+Corosync+Haproxy高可用Openstack集群实战

    一 DRBD简介 DRBD的全称为 Distributed Replicated Block Device DRBD 分布式块设备复制 DRBD是由内核模块和相关脚本而构成 用以构建高可用性的集群 其实现方式是通过网络来镜像整个设备 它允许
  • 云计算实验——OpenStack的安装与使用

    实验目的 1 掌握Linux虚拟机的安装方法 2 掌握OpenStack的单机安装方法 3 熟悉OpenStack的核心组件 实验环境 Windows10 20H2 VirtualBox 6 1 18 r142142 Ubuntu 18 0
  • OpenStack的部署(六)------Neutron项目

    目录 一 CT控制节点 1 创建数据库neutron 并进行授权 2 创建用户 服务并赋权 3 注册API 4 安装提供者网络 桥接 并修改相关配置文件 5 重启相关服务 二 C1 C2计算节点操作 1 部署neutron服务 2 配置Li
  • No package openstack-keystone available.Nothing to do

    root controller yum repos d yum y install openstack keystone httpd mod wsgi python openstackclient memcached python memc
  • ML2 Plugin框架说明

    在H版本中 ML2 Plugin被添加意图取代所有的Core Plugin 它采用了更加灵活的结构进行实现 下图即为ML2 Plugin的实现框架 作为一个Core Plugin ML2自然会实现network subnet port三种核
  • openstack安装之计算服务安装配置笔记

    1 设置本地实验ip 1 1 管理节点和计算节点更改hosts 使用ifconfig查看本地ip地址 vi etc hosts x x x x controller x x x x compute1 1 2 管理节点编辑chrony con
  • OpenStack学习笔记(二)计算服务NOVA

    本篇记录OpenStack的计算服务NOVA一些内容 很多看不懂 汗 只捡一小部分记录 一 逻辑图 OpenStack 计算服务NOVA 是基础设施服务IAAS的主要部分 采用Python实现 1 因为认证 与OpenStack 身份认证k
  • 点滴记录——使用Ganglia监控Openstack Swift状态

    转载请说明出处 http blog csdn net cywosp article details 42304487 在官方文档中有对StatsD来对Swift状态进行监控的描述 http docs openstack org develo
  • OpenStack--实现内外网结构

    类似于阿里云 ECS 主机的内外网 双网卡不通网段 的结构 最终实现内外网区分隔离 https www aliyun com product ecs utm medium text utm source baidu utm campaign
  • OpenStack nova-compute 报TooOldComputeService版本过低问题

    项目场景 安装openstack的nova compute部分 问题描述 启动nova conductor时报错 查看nova conductor log 发现如下错误 Current Nova version does not suppo
  • 超详细OpenStack一键式部署

    1 准备镜像文件 Cen1 创建新的虚拟机 1 创建虚拟机 点击关闭 2 安装Centos7 密码自己设置 不用跟着一样 2 生成动态IP地址 root localhost dhclient 3 查看生成的IP地址 root localho
  • openstack平台搭建笔记(容器云)

    openstack平台搭建笔记 容器云 一 根据要求准备好配置环境 节点IP 角色 备注 192 168 100 30 Master Kubernetes 集群 master 节点 Harbor 仓库节点 192 168 100 31 Wo
  • 是否可以从 openstack 镜像创建 ami?

    我正在从 OpenStack 中正在运行的实例创建图像 nova image create
  • 如何在 cirros OS 中安装软件包

    如何在 cirros 镜像中安装软件包 我在 devstack 安装附带的 cirros 映像中找不到任何可用的安装程序 正如 Harikrishnan 评论的那样 cirros 不包含包管理器 Cirros 主要用于验证云是否正常工作 虚
  • 使用 python-boto 启动 Openstack 实例

    我正在尝试在 opensatck 设置上启动实例 并使用 python boto 配置多个网络 但我收到以下错误 EC2ResponseError EC2ResponseError 400 Bad Request
  • 云平台- sudo:无法解析主机[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在 Amazon EC2 和 openstack 上使用 Linux 作为基于云的服务器 当尝试运行时 sudo chhown ubun
  • 安装 openstack 时发生错误:./stack.sh:137:die

    我尝试使用以下命令通过 devstack 安装 openstack git 克隆https github com openstack dev devstack git https github com openstack dev devst
  • 如何使用 cloud-init 安装 docker?

    我想在 Openstack 中创建实例 在通过 ssh 连接之前 这些实例中已经安装了 Docker 所以我很自然地对 Cloud init 技术感兴趣 因为它允许我们在第一次启动时在虚拟机上安装软件包 所以现在我尝试在启动时在我的实例上安

随机推荐

  • C++ share_ptr 循环引用问题浅析

    share ptr指针涉及到循环引用问题会因为share ptr指针对应的use count 无法清0 xff0c 导致内存泄露 xff0c 直接上例子 xff1a class S B class S A public shared ptr
  • 树莓派raspberry pi更换国内镜像

    有时候使用sudo apt get 和pip install 安装软件和一些库的时候下载速度简直是龟速如下图 xff1a xff0c 是因为在系统默认状态下 xff0c 安装软件会选择从国外的服务器上下载软件 默认地址是http raspb
  • 将SQL Server的任意记录转换为JSON格式(JQGRID) -- 支持SQL 2005

    从SQL 2008开始 xff0c SQL Sever已经支持JSON数据 xff0c SQL 2016已经对JSON数据的处理支持非常完善 对于SQL 2016以上版本的用户 xff0c 可以直接调用原生方法 xff0c 效率更高 因客户
  • gradle安装

    Gradle是一个主要用于Java项目的通用构建工具 它结合了Ant和Maven的最佳功能 与使用XML进行脚本编写的前辈不同 xff0c Gradle使用Groovy xff0c 这是一种动态的 xff0c 面向对象的Java平台编程语言
  • 树列表控件CTreeListCtrl类

    翻译来源 xff1a https www codeproject com Articles 2913 A Tree List Control 作者 xff1a TigerX 下载源文件 102 Kb 下载演示文件 54 6 Kb 介绍 这是
  • 2019xupt-acm校赛 题解(C.给你一个666)by出题组tongtong

    重现赛链接 2019 ACM ICPC Xi 39 an University of Posts amp Telecommunications School Contest 前面的话 有幸参与2019XUPT ACM校赛出题和裁判工作 过程
  • 【安装】在Windows下安装Debian(双系统)

    安装 一 前期准备二 Rufus制作启动盘三 修改BIOS四 以U盘启动安装Debian五 设置分区 一 前期准备 1 一个至少8G的U盘 2 U盘引导制作工具 我用的Rufus 链接 3 Debian的iso镜像 我用的清华镜像 点进链接
  • Swift 四种实现单例的方式

    单例模式 单例模式是设计模式中最简单的一种 xff0c 甚至有些模式大师都不称其为模式 xff0c 称其为一种实现技巧 xff0c 因为设计模式讲究对象之间的关系的抽象 xff0c 而单例模式只有自己一个对象 当你只需要一个实例的时候需要使
  • python之字符串切片为列表

    函数名说明A replace old new count 将字符串A里的old替换为new xff0c 替换次数为counta join A 将字符串序列A之间插入字符aA split sep xff0c count 将字符串A切片输出为列
  • 用python实现最简单简单的计算器

    直接上代码 xff1a 密码是123 过程 体验 收获及自我评价 xff0c 本人在活动的具体工作可以输入1000字 import os 让解释器停住 xff0c 引用os模块 print 34 欢迎使用计算程序 34 print 34 请
  • Android 一键分享功能

    之前在做项目时遇到这么个需求 xff0c 就是用户点击Menu或者一个按钮可以把文字分享到各大微博例如新浪微博 腾讯 人人 开心 校内等 现在我给大家演示一下 xff08 一 xff09 先建一个工程文件ShareDemo xff08 二
  • android listview单击事件

    今天我们来学习下listview 单击事件 xff0c 这在开发中是经常用的组件之一 1 新建一个项目 xff0c 名为ListViewDemo 2 布置布局文件main xml lt xml version 61 34 1 0 34 en
  • android 焦点事件

    今天介绍下android中的焦点事件 xff0c 之前在项目有用到过 这块不是很难 xff0c 大家跟着过一遍吧 xff0c 用到的时候直接把我下面这段代码拷贝过去就ok了 1 建一个工程 xff0c 名为TestFocus 2 在布局文件
  • android 绘图、自定义组件

    我们在开发当中很多时候都需要自定义组件 xff0c 通过自定义组件 xff0c 可以随心所欲定制酷炫的效果 下面将演示自定义绘图组件 我们要绘制一个红色的线条 1 建立工程文件 xff0c 名为TouchDemo 2 布局文件 lt xml
  • SVN常用命令详解

    命令的使用 1 检出 svn co http 路径 目录或文件的全路径 本地目录全路径 username 用户名 password 密码svn co svn 路径 目录或文件的全路径 本地目录全路径 username用户名 password
  • androidstudio 拆包时设置dex方法个数

    前言 Android应用程序 xff0c 最终发布成一个apk xff0c 安装到手机上 apk文件随便用一个解压缩文件打开 xff0c 可以看到里面有一个classes dex文件 xff0c 这就是之前工程中所有的代码 xff0c 以及
  • hash算法原理详解

    散列表 它是基于快速存取的角度设计的 xff0c 也是一种典型的 空间换时间 的做法 顾名思义 xff0c 该数据结构可以理解为一个线性表 xff0c 但是其中的元素不是紧密排列的 xff0c 而是可能存在空隙 散列表 xff08 Hash
  • Android Studio 打包时 Signature Version 选择 V1 V2 说明

    问题描述 v1和v2 Android 7 0中引入了APK Signature Scheme v2 xff0c v1是jar Signature来自JDK V1 xff1a 应该是通过ZIP条目进行验证 xff0c 这样APK 签署后可进行
  • Android 多Dex分包机制

    问题引入 随着项目工程越来越庞大 xff0c 代码的方法数不断增长到一定程度 xff0c 就出现Android 低版本系统应用无法安装的情况 那么这是哪里出错了 xff1f Android系统对安装包有哪些限制 xff1f 前一阵子 xff
  • 安装openstack时碰到的错误

    文章目录 目录安装keystone identity时遇到的错误信息glance验证操作错误信息计算节点安装openstack nova compute找不到包openstack nova compute安装后服务起不来openstack