相关疑难解决方法(0)

"签名配置应该在Gradle构建脚本中指定"......我做到了

当我来签署我的应用程序时,我遇到了一个大问题:我已根据文档设置了签名配置:

signingConfigs {
    release {
        storeFile file("lomapnew.keystore")
        storePassword "myPassword"
        keyAlias "myAlias"
        keyPassword "Something...."
    }
}
Run Code Online (Sandbox Code Playgroud)

但我仍然收到此错误消息:"应在Gradle构建脚本中指定签名配置"

在此输入图像描述

android signing gradle android-gradle-plugin

12
推荐指数
1
解决办法
8714
查看次数

如何使用gradle使用平台密钥签署Android应用程序?

我看到几个类似的问题,如:

但我觉得我的问题不同了.

首先我使用:

机器人:sharedUserId = "android.uid.system"

所以我需要用平台密钥签署我的应用程序.我能用这种方式做到这一点:

cd $ANDROID_ROOT/out/host/linux-x86/framework
java -Djava.library.path=$ANDROID_ROOT/out/host/linux-x86/lib64 -jar signapk.jar $ANDROID_ROOT/build/target/product/security/platform.x509.pem $ANDROID_ROOT/build/target/product/security/platform.pk8 $APP_DIR/app/build/outputs/apk/debug/app-debug.apk $APP_DIR/MyApp-signed.apk
Run Code Online (Sandbox Code Playgroud)

但是我想从gradle进行签名,所以我用这种方式生成了jks文件:

./keytool-importkeypair -k my_keystore.jks -p my_password -pk8 $ANDROID_ROOT/build/target/product/security/platform.pk8 -cert $ANDROID_ROOT/build/target/product/security/platform.x509.pem -alias platform
Run Code Online (Sandbox Code Playgroud)

我已经修改app/build.gradle了:

 signingConfigs {
     release {
         storeFile file("my_keystore.jks")
         storePassword "my_password"
         keyAlias "platform"
         keyPassword "my_password"
     }
 }

 buildTypes {
     release {
         minifyEnabled false
         proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

         signingConfig signingConfigs.release
     }
 }
Run Code Online (Sandbox Code Playgroud)

我已经检查过my_keystore.jks有平台别名:

keytool -list -v -keystore my_keystore.jks | grep Alias
Alias name: platform
Run Code Online (Sandbox Code Playgroud)

但是当我尝试做的时候:

./gradlew …
Run Code Online (Sandbox Code Playgroud)

android keystore gradle apk android-gradle-plugin

11
推荐指数
2
解决办法
3609
查看次数

在Android Studio中生成签名APK

在Stackoverflow中有一些与我的问题相关的问题,例如:

如何在Android工作室中导出项目?

如何使用Gradle创建发布的签名apk文件

他们很好.但仍让我感到困惑.当我在Android Studio中选择Build-> Generate signed APK时,我收到了以下警告消息:

在此输入图像描述

这是什么意思?这是否意味着我必须通过配置build.gradle来使用gradle命令行?然后是什么向导?如果我只是通过单击确定忽略警告并按照向导生成apk文件,当我将apk上传到Google Play时,我会收到错误消息,说明apk处于调试模式.

如果我按照说明设置build.gradle,如下所示:

 signingConfigs {

        debug {
            storeFile file("debug.keystore")
        }

        release {
            storeFile file("../key/test.keystore")
            storePassword "password"
            keyAlias "key"
            keyPassword "password"
        }
    }

    buildTypes {
        release {
            debuggable false
            signingConfig signingConfigs.release
        }
    }
Run Code Online (Sandbox Code Playgroud)

当我在终端运行./gradlew assembleRelease时,一切都是文件.

总之,我很困惑:

  1. 如果我必须设置build.gradle,那么"生成签名APK"向导的目的是什么
  2. 当我运行"Generate signed APK"时,如何在发布模式下构建我的应用程序

谢谢你的任何建议.

android gradle apk android-studio

9
推荐指数
1
解决办法
2万
查看次数

android bundleRelease不签署aab

我已经编写了一个 Android 应用程序,但发布过程的最后一步仍然没有完成。我假设当我运行 gradle bundleRelease 时,它​​会生成我可以在 Play 商店上传的 aab 文件。但是 Play 商店说捆绑包未签名。但是,构建过程说它正在签名:

> Task :app:preBuild UP-TO-DATE
> Task :app:preReleaseBuild UP-TO-DATE
> Task :app:compileReleaseRenderscript NO-SOURCE
> Task :app:generateReleaseResValues UP-TO-DATE
> Task :app:generateReleaseResources UP-TO-DATE
> Task :app:mergeReleaseResources UP-TO-DATE
> Task :app:checkReleaseManifest UP-TO-DATE
> Task :app:createReleaseCompatibleScreenManifests UP-TO-DATE
> Task :app:mainApkListPersistenceRelease UP-TO-DATE
> Task :app:processReleaseManifest UP-TO-DATE
> Task :app:bundleReleaseResources UP-TO-DATE
> Task :app:checkReleaseDuplicateClasses UP-TO-DATE
> Task :app:mergeExtDexRelease UP-TO-DATE
> Task :app:compileReleaseAidl NO-SOURCE
> Task :app:generateReleaseBuildConfig UP-TO-DATE
> Task :app:prepareLintJar UP-TO-DATE
> Task :app:generateReleaseSources UP-TO-DATE …
Run Code Online (Sandbox Code Playgroud)

android signing release google-play

9
推荐指数
2
解决办法
8994
查看次数

jenkins上的android build release apk,没有以纯文本格式存储我的密码

我需要能够使用Jenkins工作构建我的apk的发布版本.

从阅读以下SO问题

如何使用Gradle创建一个发布签名的apk文件?

我知道我可以通过两种方式之一来做到这一点.要么让用户在cmd提示符下输入密码,要么将我的密码详细信息存储在未提交给git的纯文本文件中,并存放在我的本地计算机上.

但是,在jenkins上运行构建作业时,这些都不会起作用.1)我无法获得用户输入,因为这可能是在半夜运行(即使用户在他们的机器上,我甚至不知道如何从cmd行获取用户输入)2)任何人都可以获得对该构建框的访问权限,可以通过cmd行或在该jenkins服务器上运行的另一个build.gradle作业捕获该文件的内容.

有谁知道无论如何我可以隐藏我的密码,但Jenkins的工作可以访问它?

谢谢

android android-build apk jenkins

7
推荐指数
1
解决办法
3142
查看次数

签名APK向导密钥库的相对路径

我想将我的密钥库存储在我的Android工作室项目中,以便我可以在Generate Signed APK向导中使用相对路径.但是我无法弄清楚签名APK向导的位置.

如何使用我的android工作室项目的相对路径到我的密钥库以与Generate Signed APK向导一起使用?

android signed apk android-studio

6
推荐指数
1
解决办法
4561
查看次数

Android项目中缺少Gradle构建任务installRelease

Gradle似乎在我正在进行的项目中丢失了构建类型.我可以重新创建一个小问题,如下所示.我有以下文件:

build.gradle
local.properties
src/main/AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)

的build.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:+'
    }
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        minSdkVersion 1
        targetSdkVersion 23
    }

    buildTypes {
        debug {

        }
        release {

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

local.properties:

sdk.dir=/path/to/android-sdk-linux
Run Code Online (Sandbox Code Playgroud)

的src/main/AndroidManifest.xml中:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="example"/>
Run Code Online (Sandbox Code Playgroud)

我希望摇篮生成任务installDebuginstallRelease,因为我定义debugrelease作为buildTypes.但事实并非如此.该命令gradle tasks产生:

:tasks

------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------

...

Install tasks
-------------
installDebug …
Run Code Online (Sandbox Code Playgroud)

android gradle build.gradle android-gradle-plugin

6
推荐指数
1
解决办法
4122
查看次数

Android Studio:如何获得对齐的签名版APK?

我正在使用Android Studio,而对于其他项目,当我尝试生成已签名的APK时,我会app-release.apk更加困难地获取该文件.

但在这个特定的项目中,我只能得到一个app-release-unaligned.apk文件.

与我的其他项目的主要区别是使用transloadit jar和org.apache.httpcomponents库,我必须在我的graddle文件中写下packagingOptions字段.

这是我的build.grade文件

apply plugin: 'com.android.application'

android {
    signingConfigs {
    }
    compileSdkVersion 22
    buildToolsVersion "22.0.1"
    defaultConfig {
        applicationId "com.bambinotes.bambinotessnap"
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            zipAlignEnabled true
        }
    }
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENCE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: …
Run Code Online (Sandbox Code Playgroud)

android gradle apk

5
推荐指数
1
解决办法
3991
查看次数

Android Studio 更改 SHA1

我使用的是最新版本的 Android Studio,但是当我尝试将应用程序发送到 PlayStore 时,我不能,因为 SHA1 不同。

这是证书中的 SHA1:

证书

但应用程序版本具有此 SHA1: 来自 apk


我的 KeyStore 在 Android Studio 中发现了一个问题。密钥库有一个 SHA1,但具有此密钥库的应用程序有另一个。

试试这个:

$ keytool -list -v -keystore mycert.keystore 将显示: SHA1: 67:F0:AE:82:85:7C:BD:C8:A0:CE:45:FA:6B:A5:92:E5:4A: 34:40:公元

但是当您在 Android Studio 中使用此密钥库构建应用程序时,您将收到: $keytool -list -printcert -jarfile app-release.apk 将显示: SHA1: 15:C3:B6:FB:B0:9B:21:DC :85:D6:04:FA:62:44:EA:F7:3D:85:FD:F8

android sha1 android-studio

5
推荐指数
1
解决办法
2万
查看次数

Android studio-向gradle添加签名配置

我对 android 世界很陌生,我试图在我的手机上运行一个简单的 hello world 应用程序。当我尝试这个时,我了解到由 android studio 生成的 APK 是未签名的。所以为了签署这个,我经历了创建一个密钥存储的过程,然后是一个私钥,它的别名,我成功地签署了 APK 并安装在我的手机上并运行它。

然后我通过这个链接将签名配置添加到 gradle 以使用新创建的密钥存储文件自动签署版本。我已经正确地按照上述链接的步骤操作并且没有遗漏任何东西,但是当我完成我的签名配置时,我有一个错误说

Gradle 项目同步失败。基本功能(例如编辑、调试)将无法正常工作。

错误:(19, 0) 在 SigningConfig 容器上找不到属性“config”。

我吃了一惊!现在我也无法手动签署我的 APK。现在,当我尝试手动签名时,它说 gradle不同步

我想这个文件将有助于帮助我解决这个错误。项目的 build.gradle。我试图理解这里提到的内容与我在进行签名配置时通过 Android Studio UI 配置的内容相同。

apply plugin: 'com.android.application'

android {
    signingConfigs {
        release {
            storeFile file("<path>\\firstKeystore.jks")
            storePassword "******"
            keyAlias "usual password"
            keyPassword "******"
        }
    }
    compileSdkVersion 19
    buildToolsVersion '20.0.0'
    defaultConfig {
        applicationId 'com.tech.vasanth.newsfeed'
        minSdkVersion 19
        targetSdkVersion 19
        versionCode 1
        versionName '1.0'
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), …
Run Code Online (Sandbox Code Playgroud)

android code-signing android-install-apk android-studio

5
推荐指数
2
解决办法
7829
查看次数