Android Studio不会为调试版本签署代码

Oli*_*ler 16 android code-signing gradle android-studio

Android Studio拒绝签署我的代码以进行调试构建.

我有一个较旧的项目,在build.gradle中没有任何签名说明,所以我根据这个Android gradle signingConfig错误和其他帖子添加了这些.

我在模块级别的build.gradle文件(唯一的模块)看起来像这样(摘录):

android {
    compileSdkVersion 21
    buildToolsVersion '21.1.2'
    defaultConfig {
        applicationId "cc.appname.android"
        minSdkVersion 11
        targetSdkVersion 21
        versionCode 1
        versionName '1.0'
    }
    signingConfigs {
        debug {
            storeFile file('../../../.android/debug.keystore')
            keyAlias 'androiddebugkey'
            keyPassword 'android'
            storePassword 'android'
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    productFlavors {
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}
Run Code Online (Sandbox Code Playgroud)

可以找到storeFile,因为当我更改路径时,我收到编译错误.当路径正确时,它会编译,但是当我尝试在我的应用程序中使用Facebook SDK时,它会报告错误的键盘.

我注意到签署了Configs

signingConfig signingConfigs.debug
Run Code Online (Sandbox Code Playgroud)

带有错误消息"无法推断参数类型..."

所以我去了用户界面中的项目设置,删除了签名以及构建和签名之间的关系,保存了这个,并将其添加回来.同样的问题.

我确信这是一个非常小的东西,我只是忽略了,或谷歌重命名版本之间的命令,无论如何.

有人可以帮忙吗?

Jar*_*ows 24

这里有几件事,假设你debug.keystore~/.android文件夹中的那个.

改变这个:

    debug {
        storeFile file('../../../.android/debug.keystore')
        keyAlias 'androiddebugkey'
        keyPassword 'android'
        storePassword 'android'
    }
Run Code Online (Sandbox Code Playgroud)

对此(存储debug.keystore在根项目中):

    debug {
        storeFile rootProject.file('debug.keystore')
        keyAlias 'androiddebugkey'
        keyPassword 'android'
        storePassword 'android'
    }
Run Code Online (Sandbox Code Playgroud)

你不需要覆盖它debug BuildType,它自然会与debug键一起签名,所以你可以删除:

    debug {
        signingConfig signingConfigs.debug
    }
Run Code Online (Sandbox Code Playgroud)

决赛build.gradle:

android {
    compileSdkVersion 21
    buildToolsVersion '21.1.2'
    defaultConfig {
        applicationId "cc.appname.android"
        minSdkVersion 11
        targetSdkVersion 21
        versionCode 1
        versionName '1.0'
    }
    signingConfigs {
        debug {
            storeFile rootProject.file('debug.keystore')
            keyAlias 'androiddebugkey'
            keyPassword 'android'
            storePassword 'android'
        }
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    productFlavors {
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}
Run Code Online (Sandbox Code Playgroud)