Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在APK中重命名包名称_Android_Package_Apk_Rename - Fatal编程技术网

Android 在APK中重命名包名称

Android 在APK中重命名包名称,android,package,apk,rename,Android,Package,Apk,Rename,我已经创建了一个AIR应用程序,目前正在市场上销售。要更新应用程序,显然我必须保持相同的包名。我的第一个版本是使用带有ADT插件的Eclipse打包的 现在要使用我第一次开发应用程序时不可用的AIR 3.0本机扩展(ANE),我现在必须使用AIR的命令行工具创建我的APK。不幸的是,这些命令行工具强制您使用以单词“air”开头的包名。例如,我需要包名“com.example”。AIR将包名创建为“AIR.com.example” 因此,现在我无法在市场上更新我的应用程序,因为软件包名称已更改。A

我已经创建了一个AIR应用程序,目前正在市场上销售。要更新应用程序,显然我必须保持相同的包名。我的第一个版本是使用带有ADT插件的Eclipse打包的

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

因此,现在我无法在市场上更新我的应用程序,因为软件包名称已更改。Adobe有这篇可怕的文章来帮助您重命名和删除包中的“air”。我不是一个伟大的程序员,所以这真的让我难堪。

显然,这些信息在某些方面已经过时或不正确。 在使用apkbuilder的第12步中,我完全被绊倒了:

 apkbuilder final.apk -u -z resources.arsc -f classes.dex
我收到以下错误消息:

此工具已弃用。有关更多信息,请参阅--help。 java.io.FileNotFoundException:resources.arsc不存在

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

这有可能奏效吗?如果有人对此感兴趣,我有一个带有示例AIR apk的zip文件,用于所有命令行工作的windows bat文件,以及所有需要的实用程序,因此它们不需要下载。要开始,您只需更改my path.bat以适应您的系统。您还需要notepad++(或等效工具)在多个文件中批量自动重命名包名。


非常感谢

这是在pc上完成的。我不知道如何在mac上完成

我不建议使用此选项删除空气包名称中的“air.”。如果您这样做,则不会提示用户在其设备上下载air。用户将收到一条错误消息,但没有问题的线索。当然,您可以使用air captive runtime来解决此问题

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

所需文件:
  • 包含apkTool的我的文件(renameAPK.zip)
  • javajdk/jre
  • 安卓SDK
  • 记事本++(或可跨多个文件重命名的等效文本编辑器)
  • 我制作了许多bat文件,因为我不知道如何将它们组合成一个文件。您需要编辑每一个,以更改路径名和文件名,以便使用计算机和apk文件

    我按使用的顺序给所有蝙蝠编号。打开命令行后,我键入想要的bat文件的编号,然后按tab键自动完成bat文件的名称,然后按enter键运行该bat文件

    说明: 双击openCmd.bat以打开一个命令行,该命令行指向包含所有文件的目录

    0。运行0path.bat设置路径。(我现在记不起是否需要AdobeAIR sdk,但我已经准备好了。显然,JDK是需要的,而android sdk是用于jarsigner和zip align的。)

    1.运行1DecompileAppk.bat让apkTool将你的应用反编译到一个名为unzippedAppk的文件夹中

    2.按照2编辑清单和软件包名称-说明(非bat)中的说明操作。txt使用解压PK中的记事本++编辑清单和软件包名称:

    编辑AndroidManifest.xml:

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

    b.编辑其他需要的条目: c.重命名“smali”文件夹中的文件夹系统,使其与您的新包名一起工作 例如: 如果旧包名为:air/oldName,则更改文件夹以匹配新包名:air/newName

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


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

    (我想有200多人被替换)

    3.运行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.运行5signAPK.bat对apk进行签名

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

    6.运行6verifySigned.bat以验证签名是否正常工作

    7.运行7zipAlign.bat以对齐apk文件

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


    你已经完成了。如果要在设备上测试,请继续

    8。运行8installAPK.bat在usb连接的设备上安装apk

    9。如果要使用远程调试,请运行9remoteDebugger.bat<
    (skipping hidden file 'C:\Users\computer\apkTool\UNZIPPEDapk\assets\META-INF
    
    String optOut = System.getenv("AIR_NOANDROIDFLAIR");
    if ((optOut == null) || (optOut.indexOf("true") == -1)) {
      packageName = "air." + packageName;
    }
    
    > export AIR_NOANDROIDFLAIR=true
    > java -jar $AIR_HOME/lib/adt.jar -package -target apk-captive-runtime -storetype pkcs12 -keystore cert.p12 -storepass *** Main.apk Main-app.xml Main.swf