重命名 APK 内的包名称

2024-04-20

我创建了一个AIR app目前市场上有这种产品。要更新应用程序,显然我必须保留相同的包名称。我的第一个版本是使用以下方式打包的Eclipse使用 ADT 插件。

现在可以使用AIR 3.0 本机扩展(ANE) 当我第一次开发该应用程序时不可用,我目前必须使用 AIR 的命令行工具创建我的 APK。不幸的是,这些命令行工具强制您使用以“air”一词开头的包名称。例如,我需要包名称“com.example”。 AIR 将包名称创建为“air.com.example”。

所以现在,我无法在市场上更新我的应用程序,因为包名称已更改。 Adobe 有这篇可怕的文章可以帮助您重命名并删除包中的“空气”。我不是一个出色的程序员,所以这确实难倒了我。http://kb2.adobe.com/cps/875/cpsid_87562.html http://kb2.adobe.com/cps/875/cpsid_87562.html

显然,此信息在某些方面已过时或不正确。 我完全被第12步绊倒了,它使用了apk构建器:

 apkbuilder final.apk -u -z resources.arsc -f classes.dex

我收到此错误消息:

此工具已弃用。请参阅 --help 了解更多信息。 java.io.FileNotFoundException:资源.arsc不存在

我已经使用步骤 10 来创建新的资源.arsc文件。它显然确实存在并且位于正确的位置。我尝试将 apkbuilder 与从其他项目获取的其他 resources.arsc 文件一起使用。我仍然收到相同的错误消息。

这工作到底有机会吗?如果有人对此感兴趣,我有一个 zip 文件,其中包含示例 AIR apk、用于所有命令行工作的 Windows bat 文件以及所有所需的实用程序,因此无需下载它们。首先,您只需更改我的 path.bat 以适合您的系统。并且您需要 notepad++(或等效工具)来批量自动重命名多个文件中的包名称。bradwallacedesign.com/dktimer/renameApkProject.zip http://bradwallacedesign.com/dktimer/renameApkProject.zip

非常感谢!


这是在电脑上完成的。我不知道如何在 Mac 上执行此操作。

我不建议用它来去除“空气”。来自航空包裹名称。如果您这样做,系统将不会提示用户在其设备上下载air。用户将收到一条错误消息,而不知道问题所在。当然你可以使用air captive runtime来解决这个问题。

http://bradwallacedesign.com/share/renameAPK.zip http://bradwallacedesign.com/share/renameAPK.zip

下载我的文件 (renameAPK.zip) 并将其解压缩到 c:\renameAPK。

所需文件:

  1. 我的文件(renameAPK.zip)包含 apkTool
  2. java jdk/jre
  3. 安卓SDK
  4. notepad++(或可以跨多个文件重命名的等效文本编辑器)

我制作了很多bat 文件,因为我不确定如何将它们合并到一个文件中。您需要编辑每一项来更改路径名和文件名,以便与您的计算机和 apk 文件配合使用。

我按照使用的顺序对所有蝙蝠进行了编号。一旦命令行打开,我输入我想要的bat文件的编号,然后按tab键自动完成bat文件的名称,然后按回车键运行该bat文件。

指示:

双击`openCmd.bat打开指向包含所有文件的目录的命令行。

0. run 0路径.bat设置你的路径。 (我现在不记得是否需要 adobe air sdk,但我的路径中有它。显然,我认为需要 JDK 以及 jarsigner 和 zipalign 的 android sdk。)

1. run 1反编译APK.bat让 apkTool 将您的应用程序反编译到名为 UNZIPPEDapk 的文件夹中

2.按照中的说明进行操作2editManifest & PackageName - 说明(不是蝙蝠).txt在 UNZIPPEDapk 中使用 Notepad++ 编辑清单和包名称:

编辑AndroidManifest.xml:

a.将包名称从 air.oldPackageName 更改为 newPackageName

b.编辑其他需要的条目:

c.重命名“smali”文件夹内的文件夹系统,以便它与您的新包名称一起使用 例如: 如果旧包名称为:air/oldName,则更改文件夹以匹配新包名称:air/newName

use 记事本++(或任何可以查找和替换多个文件中的文本的编辑器)


d.ctrl+shift+f --- “在文件中查找”

  find:
air/oldPackageName
  replace with:
newPackageName
  where:
all files in UNZIPPEDapk/smali

(我认为有超过200个替代品)

3. run 3buildDistFolder.bat让 apkTool 在 UNZIPPEDapk\Dist 文件夹中构建新的 apk

4.按照中的说明进行操作4getMissingFiles - instructions.txt在新版本中恢复 2 个丢失的文件:

a.3buildDistFolder 期间未构建两个文件:

3buildDistFolder.bat 在 \UNZIPPEDapk\dist 文件夹中构建了新的 apk,但无法复制 2 个文件:

(skipping hidden file 'C:\Users\computer\apkTool\UNZIPPEDapk\assets\META-INF

\AIR\extensions\com.adobe.mobile\META-INF\ANE\Android-ARM.classpath') (跳过隐藏文件 'C:\Users\computer\apkTool\UNZIPPEDapk\assets\META-INF \AIR\extensions\com.adobe.mobile\META-INF\ANE\Android-ARM.project')

从原始 apk 中获取这 2 个文件,并将它们放入新 apk 的正确文件夹中

b.将 yourApp.apk 从 DKTimer/Dist/ 复制到 bat 文件所在的根目录。

5. run 5signAPK.bat对 apk 进行签名。

developer.android.com/guide/publishing/app-signing.html

6. run 6验证签名.bat验证签名是否正常工作

7. run 7zip对齐.bat对齐 apk 文件。

developer.android.com/guide/developing/tools/zipalign.html


至此你已经完成了。如果您想在设备上测试它,请继续。

8. run 8安装APK.bat在 USB 连接的设备上安装 apk。

9. run 9远程调试器.bat如果你想使用远程调试。


我希望这可以帮助别人。如果我忘记添加某些内容,请告诉我。 另外,如果您知道更好的方法来执行此操作,请发表评论(例如如何将其合并到1个长时间暂停的bat文件中......)

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

重命名 APK 内的包名称 的相关文章

  • Android:加速度传感器中的z值范围在不同设备上不同

    我想检测设备是否面朝上 不是成角度 而是平放在地面上 在某些面朝上的设备上 z 值将返回 9 10 之间的值 大多数设备 然而 在 Nexus 7 上 对于面朝上 z 值将返回 6 8 之间的值 我的代码是 if z value gt 9
  • 在 Kotlin 中将 Dp 转换为 Px - 这种转换永远不会成功

    我在使用 Kotlin 编码时遇到了问题 我复制粘贴了一个java代码示例 https stackoverflow com a 9685690 6818446将 DP 转换为像素 以便将其作为以编程方式设置填充的参数 我原本期望 IDE 能
  • 设置显式注释处理器

    我正在尝试将 Maven 存储库添加到我的 Android Studio 项目中 当我进行 Gradle 项目同步时 一切都很好 但是 每当我尝试构建我的 apk 时 都会收到此错误 Execution failed for task ap
  • 使用 Glide 和 SimpleTarget 将图像随机加载到视图寻呼机中

    我在用着Glide将图像加载到ViewPager使用一个PagerAdapter 当我使用以下方法加载图像时 Glide with mContext load mImage placeholder R drawable placeholde
  • 在 OpenGL ES 1.1 中将多个纹理绑定到一个网格

    如果我有一个网格 例如有 6 个面的立方体 每个面分别由 4 个顶点组成 总共 24 个顶点 并且我想对每个面应用不同的纹理 我该怎么做 目前 我使用 glDrawElements 一次绘制整个网格 立方体的所有 6 个面 将所有索引提供到
  • “赠送”应用内购买 Android

    有没有办法将 Google Billing 中的应用内购买 赠送 给特定帐户 我把这个问题放在这里是因为如果有一种方法可以以编程方式完成它 那很好 但不是必须的 在官方文档中找不到任何相关内容 我想要这个的原因是因为我的一个应用程序目前处于
  • 如何/在哪里发布 Python 包

    如果一个人创建了一个有用的 Python 包 那么如何 在哪里发布 宣传它以供其他人使用 我已经把它放到了 github 上 但几周后谷歌也没有找到它 包装整洁完整 我制作它供我个人使用 不与其他人分享将是一种耻辱 这是 PyPI 指南 h
  • 从服务(IntentService)和活动执行的AsyncTask - 有区别吗?

    从 Activity 或 IntentService 启动 AsyncSync 之间有什么区别吗 我正在构建一个通过 http 下载和上传文件的应用程序 我为每次传输使用带有进度条的自定义通知布局 我选择并行传输或将它们放入队列 您会推荐哪
  • Android Facebook SDK - 无法接收访问令牌

    我正在尝试在我的 Android 应用程序中使用 Facebook SDK 这是片段 Facebook myFacebook new Facebook 123456789012345 myFacebook authorize LogInSc
  • 安装应用程序时复制 SD 卡上的文本文件?

    我正在开发一款安卓游戏 我想在用户第一次安装游戏时将文本文件复制到外部 SD 卡 文本文件对于正确运行游戏非常重要 我怎样才能做到这一点 我应该将文本文件放在 Eclipse 源项目中的哪里 以便当我构建 apk 文件时 我的文本文件也会捆
  • Android GLSurfaceView 具有可绘制背景

    我有一个带有可绘制对象作为背景的 GLSurfaceView 但是在没有 surfaceView setZOrderOnTop true 的情况下渲染时只有背景可见 我需要避免使用 setZOrderOnTop true 因为在 GLSur
  • Android:RunOnUiThread 与 AsyncTask

    我相信 Google 建议开发人员使用 AsyncTask 但是 我想知道它与使用 new Thread 然后调用 RunOnUiThread 在性能和内存效率方面有何不同 使用 RunOnUithread 的示例 some code 1
  • onCreateOptionsMenu(菜单菜单)是什么

    方法中的Menu和menu两个参数是什么onCreateOptionsMenu Menu menu 以及如何使用这个方法 我还有一个问题为什么this参数用于 Intent intent new Intent this DisplayMes
  • 为什么文件传输完成后我的列表视图条目的内容没有更新?

    为什么将文件复制到目录后listview没有更新驻留在该目录中的较新内容 仅当我退出时listview重新进入视图会刷新吗 有人可以告诉我如何解决这个问题吗 文件功能java文件的复制 您应该将新复制的文件 VideoInfo对象 添加到您
  • 如何使用Android平板模拟器?

    我想开始 Android 平板电脑应用程序开发 我已经使用 1024X600 模拟器创建了一个新的 avd 并启动了 但是当我单击任何应用程序时如何从模拟器返回 是否有任何特定的 api 可用于开发 android 平板电脑应用程序 或者我
  • 如何在屏幕的某些位置对齐视图,并在多种屏幕分辨率下保持一致?

    我在调整按钮时遇到了一些问题 我想把它们放在屏幕的 大约 1 3 和 2 3 处 我在下面提供了一个屏幕截图 以使事情更加清晰 我的代码如下
  • onActivityresult 数据为空

    这是我的相机应用程序 我想在其中捕获图像并裁剪它 但它拍照保存在我的 myimage 目录中 但不执行裁剪功能 请我需要帮助 我是这个领域的新人 这是我的相机开源代码 Intent intent new Intent MediaStore
  • 如何在我的 Android 库 (AAR) 中包含 proguard 配置

    Android 库 根据AAR 文件规范 http tools android com tech docs new build system aar format 包含一个 proguard txt 文件 我的理解是 该文件声明了如何正确地
  • Eclipse 中的 Android 框架源码级调试

    Android 框架的 Java 源代码可从 source android com 获取 我可以下载它们并将其提供给 Eclipse 以便在调试时进入框架方法吗 更好的是 有人知道 Eclipse 插件可以根据需要自动从 Android G
  • 向数据集中选定的一组列名称添加后缀

    我想向数据集 CTDB 中的一组列添加后缀 例如 我有以下列 我想在末尾添加 Child 该子集是包含 100 多列的较大数据集的一部分 我不想重写每个列名称 9 SCARED BREATHE 10 SCARED HEADACHE SCHO

随机推荐

  • 辅助功能:仅限 sr 或 aria-label

    From MDN https developer mozilla org en US docs Web Accessibility ARIA ARIA Techniques Using the aria label attribute 在下
  • Laravel phpunit 异常处理

    我正在使用 Laravel 5 5 和 Vue js 编写一个 Web 应用程序 PHPUnit 版本是 6 3 1 当用户使用表单请求注册时 我正在测试验证错误 Route web php Route post register Auth
  • Rails::Railtie:创建 Rails 3 gem 时遇到问题

    我真的可以用另一双眼睛来看待这个问题 所以我想我会把它发布在这里 不久前 我出于自己的教育目的编写了一个基本的 ActiveRecord 扩展 我最近一直在阅读有关 Railties 的内容 并想尝试让它与 Rails 3 一起工作 我想我
  • Swift 与 Objective C 指针操作问题

    我在 Objective C 中有这段代码 运行良好 list controller gt audioBufferList list gt mBuffers 0 mDataByteSize inNumberFrames kSampleWor
  • 导入Stanford nlp Intellij

    我在使用斯坦福词形还原器时遇到问题 当我使用 Intellij IDE 时 我尝试通过依赖项 Windows 导入它 但我无法通过这种方式访问 所有类 有没有办法在 Intellij 上正确导入 stanford english coren
  • 使用随机数生成引擎

    我正在尝试使用兰德 字节 https www openssl org docs crypto rand htmlOpenSSL 的 API 但我想尝试使用各种随机数生成引擎 在 OpenSSL 中是否有推荐的生成随机字节并添加熵的方法 我在
  • 模型无法通过烧瓶迁移检测到

    我的烧瓶应用程序中有这棵树 api migrations model init py Persons py Comments py other classes py resources init py app py util py This
  • 如何更新实体?

    我之前有一个更详细的问题 但我没有答案 我将以更简单的方式提出同样的问题 I have an EF database with foreign key to another table 我想UPDATE an ENTITY 但我需要这样 我
  • 如何定期更新WebView中的HTML5位置(使用FINE_ACCURACY)

    我正在开发一个应用程序来跟踪我的手机定期 不仅是第一次 with navigator geolocation getCurrentPosition 运行在 HTML5 页面中 运行在 webkit webview 中 运行在 android
  • SpringFramework:预期有一个匹配的 bean,但发现了 2 个

    我正在构建一个使用 SpringFramework 从 MongoDB 读取数据的项目 其结构为存储库 and Service如下 Repository Interfaces I
  • 将安装文件打包为单个可执行安装程序

    我有一个用 C 编写的旧程序的旧设置 其中包含多个安装文件 SETUP 1 SETUP DLL INST32I EX ISDEL EXE SETUP EXE DISK1 ID SETUP INI SETUP INS SETUP LIB SE
  • UITableView 的本地化索引

    我正在尝试为我的 UITableView 使用本地化索引 就像 iPhone 的联系人应用程序一样 这是我返回字符数组的方法 NSArray sectionIndexTitlesForTableView UITableView tableV
  • 如何停止对辅助隐式加载 DLL 的 DLL 劫持

    例如 COMDLG32 DLL 隐式链接到以下系统 DLL 以及其他 xmllite dll dll srvcli dll wkscli dll 链接信息库 netutils dll 微星 dll 由于这些是由操作系统隐式加载的 而不是使用
  • 如何重定向 Visual Studio 调试器的输出?

    在 Visual Studio 2008 中 我可以指定命中断点时要打印的消息 通过右键单击断点并选择 命中时 当程序运行时 这些消息出现在输出窗口中 我想知道有什么办法可以将它们重定向到文件吗 指定 gt file txt作为程序的命令参
  • 休眠批量插入

    这是我在数据库中插入批次的代码 Override public void addMultiple session get session tx session beginTransaction for int i 0 i lt 100 i
  • 错误:ValueFactory 尝试访问此实例的 Value 属性

    Error 源文件 c Projects WaterfrontSeattle org src Orchard Logging OrchardLog4netLogger cs Line 63 来源错误 Line 61 Load the log
  • 升级到Numpy 1.8.2后,ImportError:无法导入名称多数组

    我刚刚使用 Anaconda 的 Spyder 在 64 位 Windows 机器上升级到 Numpy 1 8 2 我使用了命令 conda update numpy 它安装了它 在此之前我有numpy 1 7 1 并且我在另一个路径中也有
  • 帮助--LibSVM 的准确率达到 100%?

    名义上这是一个好问题 但我很确定这是因为发生了一些有趣的事情 作为上下文 我正在研究面部表情 识别空间中的一个问题 因此获得 100 的准确度似乎令人难以置信 并不是说在大多数应用程序中这是合理的 我猜测数据集中存在一些一致的偏差 这使得
  • 删除行以及引用已删除行的其他行

    我正在使用 PostgreSQL 并且我有一张表family像这样 id name parent id 1 adam 0 2 eva 0 3 peter 2 4 pan 3 现在 当我删除这个人时 我也希望孩子们也被删除 例如删除WHERE
  • 重命名 APK 内的包名称

    我创建了一个AIR app目前市场上有这种产品 要更新应用程序 显然我必须保留相同的包名称 我的第一个版本是使用以下方式打包的Eclipse使用 ADT 插件 现在可以使用AIR 3 0 本机扩展 ANE 当我第一次开发该应用程序时不可用