【问题标题】:Create Android app release mode创建 Android 应用发布模式
【发布时间】:2011-12-16 23:21:30
【问题描述】:

我想在发布模式下创建我的 Android 应用。我做了建议的从 Eclipse 导出。 Android工具->未分配的导出(然后对其进行签名等)我虽然导出会给我发布模式应用程序。我检查了磁盘,.apk 的大小与我通常在 Eclipse 中编译时得到的大小相同。
此外,我通过 >adb install myapp.apk 将它安装在模拟器中,然后我尝试在 Eclipse 调试器中附加到应用程序,果然它击中了我的断点。所以我确信我确实有一个调试版本。问题是如何在签名并提交到市场之前从 Eclipse 创建我的应用程序的发布模式版本?

编辑

如果我记录它,则可调试标志在导出时关闭,从 Eclipse 运行时也是如此。除非我在清单应用程序部分明确将其设置为 true。似乎调试/发布模式只是一个开/关标志。仅此而已,我可以设置断点并调试两个版本。生成的 .apk 大小相同。

cxLog.e( "TOKEN", " Debuggable=" + (( context.getPackageManager().getApplicationInfo( comp.getPackageName(), 0 ).flags &= ApplicationInfo.FLAG_DEBUGGABLE ) != 0 ) ); 

10-28 14:46:12.479: ERROR/TOKEN(1856): Debuggable=false

【问题讨论】:

  • 好问题。我是 android 开发的新手,在我看来应该是一键式过程(以发布模式导出),实际上是一个可怕的选项纲要,编辑代码以删除日志调用,优化(或不优化)等。也许是 Android 开发团队缺乏成熟领导力的一个标志。我看到这被标记为已回答 - 但解决方案是什么?我在 SDK 16 上,遇到了同样的问题......我开始阅读 Android 文档 - 所以返回的链接对我没有帮助......

标签: android release


【解决方案1】:

问题是如何从 Eclipse 创建我的应用程序的发布模式版本

看看这个:Compile the application in the release mode

Android 工具 > 导出未签名的应用程序包


Support for a true debug build。开发人员不再需要将 android:debuggable 属性添加到清单中的标签 — 构建工具会自动添加该属性。在 Eclipse/ADT 中,所有增量构建都假定为调试构建,因此工具插入 android:debuggable="true"。导出签名的发布版本时,工具不会添加该属性。在 Ant 中,ant 调试命令会自动插入 android:debuggable="true" 属性,而 ant release 则不会。如果手动设置了 android:debuggable="true",那么 ant release 实际上会进行调试构建,而不是发布构建。

【讨论】:

  • 如果我使用“导出签名的应用程序包”会发生什么情况,它会自动签署我的应用程序并压缩它吗?
  • @Orn hmm 文档中还有其他内容,您使用的是哪个版本的 SDK,还可以尝试使用 ProGuard,也许可以删除不需要的调试符号?
  • @xDragonZ Jepp,它会做到这一点。
  • 我的Android sdk是7,好像15已经出来了,也许是时候更新了
  • 还可以尝试“在包资源管理器中选择项目并选择文件 > 导出”。来自developer.android.com/tools/publishing/… 为我工作。
【解决方案2】:

如果您想在发布模式下登录和 ZIP 对齐您的应用,以便它可以分发并可以上传到 Google Play 商店,那么只需按照以下步骤操作。

 --> Right click on project
 --> Android Tools
 --> Export Unassigned app and save in directory like D:\Sdcard.apk

         //Now open your windows terminal, CMD
 --> change directory to the bin of the jave like
 --> cd c:\ProgramFiles\JAVA\JDK\bin

现在是时候创建 Keystore 已发布文件... 现在在 TERMINAL 中编写这些命令,

keytool -genkey -v -keystore my-release-key.keystore -keyalg RSA -keysize 2048 -validity 14600

这将提示 Keystore “密码”和 Key “密码”,因此请输入不同的密码并回答稍后将提出的问题。 现在 my-release-key.keystore 文件将在您的 java 的“bin”文件夹所在的目录中生成,就像在我的系统中一样

     c:\ProgramFiles\JAVA\JDK\bin\ my-release-key.keystore

在终端中编写此命令以在应用程序中签名

jarsigner -verbose -keystore my-release-key.keystore D:\Sdcard.apk mykey

现在将您的终端重定向到位于 Android sdk 21\tool\ 中的 Zipalign.exe 文件,就像在我的系统中那样

cd F:\Softwares\LANGUAGES SOFTEARE\Android Setup\android-sdk-21 version\tools

然后将下面的行放在终端中

zipalign -v 4 D:\Sdcard.apk newSdcard.apk

恭喜! - 现在你会在Android sdk\tool 中找到一个newSdcard.apk 文件,现在上传到play store,用爱记住我。 ?

【讨论】:

  • Right click on project“项目”到底在哪里?
  • @fnc12 是你在 eclipse 中的项目,只需右键单击它并按照上述步骤操作
  • @fnc12 pirfahimshah1 ,我的Skype,如果你有任何问题,你可以在那里找到我
  • Android Studio 怎么样?
【解决方案3】:

在当前版本的 Android SDK 上,只需右键单击项目,Android 工具 > 导出签名的应用程序包,然后选择您的密钥库

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 2021-01-23
    • 2016-09-01
    相关资源
    最近更新 更多