首页 > 其他分享 >记录tpt-the powder toy 安卓原版编译

记录tpt-the powder toy 安卓原版编译

时间:2023-01-01 03:33:05浏览次数:50  
标签:bin ndk toy toolchain 安卓 apk prefix tpt android

修改coross-exp下的安卓配置文件

原仓库文件下有安卓文件夹,打开他,目录下有coross文件夹内部有对应平台的的相关配置,
复制粘贴到仓库根目录下的coross-exp下的安卓配置文件,合并在一起,然后按照你的sdk,ndk,java的配置,修改该配置文件
我的修改出来如下

[constants]
andriod_ndk_toolchain_bin = '/home/lemon233/Android/Sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin'
android_ndk_toolchain_prefix = 'aarch64-linux-android21-'

[properties]
# only needed if you want to run the custom target powder_apk (powder.apk)
# android_ndk_toolchain_prefix comes from the correct cross-file in ./android/cross
android_ndk_toolchain_prefix = android_ndk_toolchain_prefix
android_platform = 'android-33'
android_platform_jar = '/home/lemon233/Android/Sdk/platforms/' + android_platform + '/android.jar'
java_runtime_jar = '/usr/lib/jvm/java-8-openjdk/jre/lib/rt.jar'

[binaries]
c = andriod_ndk_toolchain_bin / (android_ndk_toolchain_prefix + 'clang')
# c = [ 'ccache', andriod_ndk_toolchain_bin / (android_ndk_toolchain_prefix + 'clang') ]
cpp = andriod_ndk_toolchain_bin / (android_ndk_toolchain_prefix + 'clang++')
# cpp = [ 'ccache', andriod_ndk_toolchain_bin / (android_ndk_toolchain_prefix + 'clang++') ]
strip = andriod_ndk_toolchain_bin / 'llvm-strip'
# only needed if you want to run the custom target powder_apk (powder.apk)
javac = '/usr/lib/jvm/java-8-openjdk/bin/javac'
jar = '/usr/lib/jvm/java-8-openjdk/bin/jar'
d8 = '/home/lemon233/Android/Sdk/build-tools/33.0.1/d8'
aapt = '/home/lemon233/Android/Sdk/build-tools/33.0.1/aapt'
aapt2 = '/home/lemon233/Android/Sdk/build-tools/33.0.1/aapt2'
zipalign = '/home/lemon233/Android/Sdk/build-tools/33.0.1/zipalign'
apksigner = '/home/lemon233/Android/Sdk/build-tools/33.0.1/apksigner'

[host_machine]
system = 'android'
cpu_family = 'aarch64'
cpu = 'armv8'
endian = 'little'

修改到此完成

构建编译

返回仓库根目录,输入命令:

meson --cross-file=cross-examples/android.ini -Dbuildtype=release -Dstatic=system -Dlua=lua52 build-and

此时meson会从github拉取对应的配置文件,
拉取过程中大概率会报错ERROR: Problem encountered: tpt-libs android platform mismatch,这是因为拉取下来的安卓sdk版本和本地版本不一致导致的
打开仓库根目录下的subprojects文件夹,目录下应该有你刚刚拉取的配置文件夹,打开它找到meson.build修改android_platform = 'android-30' 改成android_platform = 'android-33'
然后重新执行构建

构建应该顺利完成,然后接下来执行编译

此时的编译不能直接用ninja那样编译出来的是动态库文件
应该用以下命令:

meson compile sign-apk  #不要在意这里的自定义目标是sign apk,它会自动帮你构建对齐apk的

若编译完成,应该出现

Failed to load signer "signer #1"
java.io.FileNotFoundException:  (没有那个文件或目录)

这个错误,若出现其他错误请自己排查,出现这个错误,说明在签名出错,需要我们手动签名

签名apk

使用如下命令创建签名文件

keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore

如果成功执行,你的目录下应该有名叫android.keystore的密钥文件
然后签名:

apksigner sign --ks ./android.keystore ./android/powder.unsigned.apk #过程会提示你输入创建密钥时的密码

若没有报错,此时的powder.unsigned.apk以及是签名过后的了,可以安装了

标签:bin,ndk,toy,toolchain,安卓,apk,prefix,tpt,android
From: https://www.cnblogs.com/Lemon-233/p/17017697.html

相关文章

  • 安卓-PorterDuffXfermode
    一、当我们要实现两张图片之间的混合模式的时候经常会用到PorterDuffXfermode二、使用方法mPaint.setXfermode(newPorterDuffXfermode(PorterDuff.Mode.DST_IN));在mPa......
  • R语言对git安卓包分类统计、聚类、复杂网络可视化分析
    我们曾经为一位客户进行了短暂的咨询工作,他正在构建一个主要基于安卓包分类的分析应用程序。数据源是安卓的项目,把同一类功能的安卓代码的头部,每一个文件都有import 包名......
  • 适合编程初学者的开源项目:小游戏2048(安卓版)
    目标为编程初学者打造入门学习项目,使用各种主流编程语言来实现。安卓版效果图技术特点安卓Kotlin工程截图开源地址https://gitee.com/lblbc/game_2048关于厦门......
  • win11 运行安卓程序 详细步骤
    Android子系统的要求确保Windows11版本为22000.xxx或更高版本。硬件必须支持并启用BIOS/UEFI虚拟化确保微软商店版本为22110.1402.6.0或更高版本,并单击“获取更新”按......
  • 安卓期末大作业——汉服社区(源码+任务书)
    课题的作用和意义汉族占中国人口的91%,是中国的主体民族,在越来越全球化的今天,我们正越来越多地,在不同场合,与不同的民族打交道,由此也就越是需要民族身份的认同和辨异。而由于......
  • 安卓期末大作业——校园二手街APP设计和实现
    目录1.引言41.1研究背景和意义41.2本文研究内容41.3论文结构安排42.相关文献综述52.1关于移动互联网的地理社交研究52.2关于移动互联网商业模式研究52.3关于......
  • 安卓期末大作业——小吃商城
        核心技术要点:通过Jetpack的导航组件——Navigation,实现了1个activity嵌套多个fragment的底部导航菜单,Navigation的依赖如下所示:dependencies{  defnav_version......
  • 安卓期末大作业——鲜花商店APP(源码+任务书)
    课程考核报告姓 名:学 号:完 成日期2022年5月建议从以下方面填写:1.课题的作用和意义 2.课题综述 3.完成思路与方法 4.软件设计流程图(图示说明系统)5.课程设计的收......
  • 安卓期末大作业——养猫论坛(源码+任务书)
    随着我国孤独人口和丁克群体的增长,人们迫切需要一个事务来宣泄自己的感情,宠物就是一个最好的选择。对于普通民众,宠物的花销相对较低,大部分人都足以供给,且随着我国人口老龄化......
  • 安卓期末大作业——图书信息管理系统
    前言随着信息技术的高速发展,科技逐渐走进各行各业,帮助人们快速、便利地完成一些工作。BMS系统是基于Android移动设备的应用软件,该系统能够帮助用户在家里通过手机查看相应图......