当前位置: 首页 > 知识库问答 >
问题:

Gradle Zipaling任务不起作用?

单修德
2023-03-14

似乎Gradle zipAligns任务对我不起作用,不确定我做错了什么。我尝试过包含zipAligns任务,也尝试过不包含它,但似乎没有什么不同。我的gradle脚本吐出了一个“发布”版本,但当我尝试上传我的. apk时,它从来没有根据开发人员控制台进行压缩对齐。

这是我的构建脚本:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.4.2'
    }
}

apply plugin: 'android'

dependencies {
    compile project(':facebook-android-sdk-3.0.1:facebook')
    compile project(':google-play-services_lib')
    compile project(':nineoldandroids')
    compile project(':SlidingMenu-master:library')
    compile project(':ViewPagerIndicator')
    compile project(':volley')
    compile project(':windowed-seek-bar')
    compile files('compile-libs/androidannotations-2.7.1.jar', 'libs/Flurry_3.2.1.jar', 'libs/google-play-services.jar', 'libs/gson-2.2.4.jar', 'libs/picasso-1.1.1.jar', 'libs/crittercism_v3_0_11_sdkonly.jar', 'libs/gcm.jar', 'libs/apphance-library.jar')
}

android {
    buildToolsVersion "17.0"
    compileSdkVersion 17

    signingConfigs {
        debug {
            storeFile file('keystores/debug.keystore')
        }
    }

    buildTypes {
        debug {
            sourceSets {
                main {
                    manifest.srcFile 'AndroidManifest.xml'
                    java.srcDirs = ['src']
                    resources.srcDirs = ['src']
                    aidl.srcDirs = ['src']
                    renderscript.srcDirs = ['src']
                    res.srcDirs = ['res']
                    assets.srcDirs = ['assets']
                }
            }
        }

        release {
            zipAlign true
            sourceSets {
                main {
                    manifest.srcFile 'AndroidManifest.xml'
                    java.srcDirs = ['src']
                    resources.srcDirs = ['src']
                    aidl.srcDirs = ['src']
                    renderscript.srcDirs = ['src']
                    res.srcDirs = ['res']
                    assets.srcDirs = ['assets']
                }
            }
        }
    }
}

感谢您的帮助!

共有2个答案

云景焕
2023-03-14

可以获取任何现有的Android Studio gradle项目并从命令行构建/签署它,而无需编辑任何文件。这使得将项目存储在版本控制中非常好,同时保持密钥和密码分开,而不是在build.gradle文件中:

./gradlew assembleRelease -Pandroid.injected.signing.store.file=$KEYFILE -Pandroid.injected.signing.store.password=$STORE_PASSWORD -Pandroid.injected.signing.key.alias=$KEY_ALIAS -Pandroid.injected.signing.key.password=$KEY_PASSWORD
闻修筠
2023-03-14

您的版本生成类型未配置为签名。

如果要手动签署apk,还需要手动运行ZipAlign。ZipAlign必须在签名后进行。

Gradle将zipalign apk只有当它可以签署以及。

要为发布配置设置签名,您需要首先创建一个新的签名配置,然后将其分配给生成类型。

android {
  signingConfigs {
    release {
      storeFile file("/path/to/keystore")
      storePassword "??"
      keyAlias "??"
      keyPassword "??"
    }
  }

  buildTypes {
    release {
      signingConfig signingConfigs.release
    }
  }
}

请注意,签名配置中的所有4个参数都是必需的,否则它将考虑缺少一些值,甚至不会尝试签名。

 类似资料:
  • 问题内容: 我正在使用以下代码在任务栏上显示JDialog,并且在JDK 1.6中可以正常工作。 但是当我使用方法设置模态类型时,它不起作用 这两个代码之间有什么区别?有什么方法可以解决此问题吗? 问题答案: 问题是某些所有者的构造方法会创建一个伪框架所有者(如果所有者是出于历史原因)。但是 必须没有 所有者像顶级窗口一样可见。即 将工作。

  • 关于如何修复gradle版本,有很多很好的建议,但有些已经过时了,或者我只是找不到建议的路径。对我来说,一个解决方案是Project>Project Structure>Project>Gradle Version。 在这里我可以把它改成支持的版本,并且成功地构建项目。 从这个链接,它暗示这是设置你的gradle包装的方式。 因此,我希望Project/Platforms/Android/Grad

  • 我已经为这个问题寻找了4天的解决方案,但没有成功, 首先做正常的Gradle构建任务产生了一个很小的7kB jar文件,显然不起作用,然后我为主类添加了jar配置: 现在是2MB! 仍然不够好,然后我找到了法特加/uberJar/影子任务,据说是同样的事情的同义词,所以我试着在另一个小的RMI应用程序上清理法特加任务,它将在服务器上运行,它工作得很好,将其复制到主应用程序,它产生和60MB jar

  • 我正在尝试创建自己的android Asynctask实现。为此,我创建了一个抽象类,它扩展了Thread类。我为onPreExecute、onPostExecute、onProgressUpdate和doInBackground声明了方法。 我通过从主线程的循环器创建一个处理程序来运行doInBackground方法。但我无法修改onProgressUpdate()方法中的UI元素,但我可以修改

  • 我创建了一个Azure运营模式任务组,以在Azure(Azure容器实例)上创建一个selenium容器,如下所示: 脚本: 在Linux构建代理上运行时,此任务会成功执行。 当我尝试在Windows构建代理上运行它时,任务不会失败,但不会创建容器。任务的输出如下: F:\Agent03\w\125\s F:\Agent03\w\125\s F:\Agent03\w\125\s F:\Agent0

  • 我正试图用服务栈实现Swagger。我已经用nuget安装了带有swagger的服务栈。当前的DLL版本大多报告为3.9.56.0。 我正在努力遵循…https://github.com/ServiceStack/ServiceStack.UseCases/tree/master/SwaggerHelloWorld提供的例子 这个指令看起来相当简单... 在我通过nuget安装后(按照文档说明),