我尝试运行项目时,signatureConfig.storeFile不存在

时间:2016-01-06 09:34:06

标签: android android-studio keystore telegram

我从GitHub下载了一个项目,并由Android Studio打开。所有必需的构建工具和Android支持存储库都是通过Android Studio自动下载的。

https://github.com/DrKLO/Telegram

现在我尝试来运行项目,我在按摩时出现错误。

Error:A problem was found with the configuration of task ':TMessagesProj:packageDebug'.
> File 'G:\AndroidDev\AndroidStudioProjects\Telegram-master\TMessagesProj\config\release.keystore' specified for property 'signingConfig.storeFile' does not exist.

我在Stack Exchange上发现了一些其他线程:

Gradle signing app with packageRelease “specified for property 'signingConfig.storeFile' does not exist”

Android specified for property 'signingConfig.storeFile' does not exist

我按照他们的建议创建了密钥库,但是当我点击运行按钮时,我仍然遇到了这个错误。他们似乎与我的不同。

我还生成了签名的APK,当我尝试在设备上安装它时,程序崩溃并停止,我想这可能是由上述问题引起的。

我确定它应该正常工作,因为它是Telegram信使的官方来源。 https://github.com/DrKLO/Telegram

如果您需要build.gradle文件:

apply plugin: 'com.android.application'

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.android.support:support-v4:23.1.+'
    compile 'com.google.android.gms:play-services:3.2.+'
    compile 'net.hockeyapp.android:HockeySDK:3.6.+'
    compile 'com.googlecode.mp4parser:isoparser:1.0.+'
}

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'

    useLibrary 'org.apache.http.legacy'

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    signingConfigs {
        debug {
            storeFile file("config/release.keystore")
            storePassword RELEASE_STORE_PASSWORD
            keyAlias RELEASE_KEY_ALIAS
            keyPassword RELEASE_KEY_PASSWORD
        }

        release {
            storeFile file("config/release.keystore")
            storePassword RELEASE_STORE_PASSWORD
            keyAlias RELEASE_KEY_ALIAS
            keyPassword RELEASE_KEY_PASSWORD
        }
    }

    buildTypes {
        debug {
            debuggable true
            jniDebuggable true
            signingConfig signingConfigs.debug
            applicationIdSuffix ".beta"
        }

        release {
            debuggable false
            jniDebuggable false
            signingConfig signingConfigs.release
        }

        foss {
            debuggable false
            jniDebuggable false
            signingConfig signingConfigs.release
        }
    }

    sourceSets.main {
        jniLibs.srcDir 'libs'
        jni.srcDirs = [] //disable automatic ndk-build call
    }

    sourceSets.debug {
        manifest.srcFile 'config/debug/AndroidManifest.xml'
    }

    sourceSets.release {
        manifest.srcFile 'config/release/AndroidManifest.xml'
    }

    sourceSets.foss {
        manifest.srcFile 'config/foss/AndroidManifest.xml'
    }

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 23
        versionCode 695
        versionName "3.3.2"
    }
}

3 个答案:

答案 0 :(得分:0)

1)检查storeFile是否存在于路径G:\AndroidDev\AndroidStudioProjects\Telegram-master\TMessagesProj\config\release‌​.keystore

2)如果不是 - 重命名/移动您的密钥库文件或更改密钥库文件位置的路径。

现在应该可以了。如果您在涉及本机代码时遇到构建问题,请尝试此主题 Android Telegram App --> java.lang.UnsatisfiedLinkError: No implementation found for void

答案 1 :(得分:0)

你的问题是:Android Studio正在搜索你告诉它应该在那里的密钥文件......但不是。

你告诉Android Studio文件会在哪里?

storeFile file("config/release.keystore")

如何创建此丢失的文件? https://developer.android.com/studio/publish/app-signing.html

如果您已经创建了密钥库,请检查它是否在正确的位置,通常我使用名为' keystore'的文件夹。而不是' config',当您浏览搜索时更直观;)

storeFile rootProject.file("keystore/release.keystore")

答案 2 :(得分:0)

要生成密钥存储区,请进入Build>生成签名APK并单击New Key Store,现在将生成的文件重命名为release.keystore并将其移至TMessagesProj / config。

Android Studio会生成.jks文件。只需将其从release.jks重命名为release.keystore即可。然后构建将成功。