当前位置: 首页 > wzjs >正文

自己做网站平台新媒体营销案例

自己做网站平台,新媒体营销案例,WordPress连接微博,六安做网站公司android-ndk开发(2): macOS 安装 ndk 2025/05/05 1. 概要 对于 android-ndk 在 r23 之前的版本,官方提供了 .zip 文件, 解压即安装。 对于 android-ndk 在 r23 以及之后的版本, 官方只提供了 .dmg 文件, 不能简单的解压完成安…

android-ndk开发(2): macOS 安装 ndk

2025/05/05

1. 概要

对于 android-ndk 在 r23 之前的版本,官方提供了 .zip 文件, 解压即安装。

对于 android-ndk 在 r23 以及之后的版本, 官方只提供了 .dmg 文件, 不能简单的解压完成安装。

2. ndk >= r23, macOS 怎么安装 ?

android ndk 从 r23 开始, 不再提供 macOS 平台的 .zip 安装包(如android-ndk-r22b-darwin-x86_64.zip), 只提供 .dmg 格式的安装包。链接 [1] 可以确认。这导致无法像 Windows 和 Linux 一样, 解压 .zip 就完成 ndk 的安装。

以 android-ndk-r27c-darwin.dmg 为例, 双击后显示两个文件: AndroidNDK12479018.app 和 source.properties。 双击 AndroidNDK12479018.app 后感觉完成了安装, 但在 /Application, /Library, ~/Application, ~/Library 4个目录找不到安装的内容。

手动解压 AndroidNDK12479018.app,里面的 NDK 目录是工具链, CodeSign 这玩意儿暂时不知道用处,感觉就是故意使绊子。

为了一劳永逸解决 macOS 上 ndk >= r23 版本的安装, 上述过程写为 Python 脚本。基本思路是:挂载 .dmg -> 找到 .app 文件 -> 找 NDK 目录 -> 拷贝到目标目录。

import subprocess
import shutil
import os
import timedef mount_and_copy(dmg_path, target_dir):target_dir = os.path.expanduser(target_dir)try:print(f"⏳ 正在挂载 {dmg_path}...")mount_result = subprocess.run(["hdiutil", "attach", "-nobrowse", dmg_path],capture_output=True,text=True,check=True)# 解析挂载路径mount_path = Nonefor line in mount_result.stdout.splitlines():if "/Volumes" in line:mount_path = line.split("\t")[-1].strip()breakif not mount_path:raise FileNotFoundError("无法定位挂载点")time.sleep(2)  # 等待文件系统稳定# 动态查找AndroidNDK*.appapp_files = [f for f in os.listdir(mount_path)if f.startswith("AndroidNDK") and f.endswith(".app")]# e.g. AndroidNDK12479018.app for android-ndk-r27cif not app_files:available = "\n".join(os.listdir(mount_path))raise FileNotFoundError(f"未找到AndroidNDK*.app文件,当前卷内容:\n{available}")app_path = os.path.join(mount_path, app_files[0])print(f"  定位到应用包:{app_path}")# 验证NDK路径ndk_source = os.path.join(app_path, "Contents", "NDK")if not os.path.exists(ndk_source):raise FileNotFoundError(f"NDK目录不存在:{ndk_source}")# 准备目标目录os.makedirs(target_dir, exist_ok=True)print(f"  目标目录:{target_dir}")# 执行复制(保留元数据)print("⚙️ 开始复制NDK文件...")shutil.copytree(ndk_source,target_dir,dirs_exist_ok=True,copy_function=shutil.copy2)# 卸载镜像print("⏳ 正在卸载...")subprocess.run(["hdiutil", "detach", mount_path], check=True)print(f"  安装完成!路径:{target_dir}")except subprocess.CalledProcessError as e:print(f"❌ 命令执行失败:{e.stderr}")if 'mount_path' in locals() and os.path.exists(mount_path):print(f"⚠️ 尝试手动卸载:hdiutil detach {mount_path}")except Exception as e:print(f"❌ 错误:{str(e)}")if __name__ == "__main__":dmg_path = os.path.join(os.getcwd(), "android-ndk-r27c-darwin.dmg")mount_and_copy(dmg_path, "/Users/zz/soft/toolchains/android-ndk-r27c")

References

  • https://github.com/android/ndk/wiki/Unsupported-Downloads
http://www.dtcms.com/wzjs/284078.html

相关文章:

  • b2c网站存在问题打开百度搜索
  • ssm做网站seo的基本步骤包括哪些
  • 怎么在百度建设网站中国最厉害的营销策划公司
  • 混合式教学财务管理网站建设怎么做好seo内容优化
  • 竞价网站如何设计有没有免费的crm系统软件
  • 北京做网站制作的公司购买域名
  • 定制型网站制作价格中国推广网
  • 活动网站推广方案打开百度网址
  • 柳州网站优化58同城推广
  • 建设银行网站账户注销湖南做网站的公司
  • 营销型网站建设的公司seo软件视频教程
  • 哪家网站制作 优帮云搜索引擎的工作原理是什么?
  • 德国和俄罗斯和做视频网站关键词制作软件
  • 交换广告是两个网站做友情链接吗百度统计手机app
  • 手机网站的尺寸做多大的阿里巴巴logo
  • 北京模板网站建设互动营销案例都有哪些
  • 网站建设 天津seo网站优化系统
  • jsp网站怎么做珠海关键词优化软件
  • 网站怎么做排行榜在线seo外链工具
  • 网站建设内部下单流程图收录优美图片app
  • 网站公安备案时间限制高端网站设计公司
  • 电子商务网站的开发方式有哪三种时事新闻热点摘抄
  • ps中网站页面做多大的制作自己的网站
  • 网站开辟两学一做专栏信息流广告推广
  • 合肥比较好的网站建设公司有没有免费的推广网站
  • 开发网站公司多少钱广告软文范例大全100
  • 海淀教育互动平台西安seo技术培训班
  • 气球网站建设中国销售网
  • 网站建设 cms 下载福州百度开户多少钱
  • 宝安自适应网站建设公司品牌宣传