我使用android studio预览版beta 4,我使用Telegram源代码(https://github.com/DrKLO/Telegram),当我想连接到Firebase时,我收到此消息:
“找不到为build build type指定的文件({0})中的密钥库。{2}”
并收到此消息:
由于以下原因,无法将任何客户端添加到您的Firebase项目中: Firebase:连接到Firebase失败。请检查您的互联网连接,然后重试。如果错误仍然存在,您可以在https://console.firebase.google.com
手动连接
当我手动连接到Firebase并将google-services.json添加到我的应用时,我收到此消息:
错误:任务执行失败':TMessagesProj:processArmv7DebugGoogleServices'。 找不到包名称'org.telegram.messenger.beta'
的匹配客户端
build.gradle(Module:TMessengerProj)
apply plugin: 'com.android.application'
repositories {
mavenCentral()
}
configurations {
compile.exclude module: 'support-v4'
}
dependencies {
compile 'com.google.android.gms:play-services-gcm:11.0.2'
compile 'com.google.android.gms:play-services-maps:11.0.2'
compile 'com.google.android.gms:play-services-vision:11.0.2'
compile 'com.google.android.gms:play-services-wallet:11.0.2'
compile 'com.google.android.gms:play-services-wearable:11.0.2'
compile 'com.android.support:support-core-ui:25.3.1'
compile 'com.android.support:support-compat:25.3.1'
compile 'com.android.support:support-core-utils:25.3.1'
compile 'com.android.support:support-v13:25.3.1'
compile 'com.android.support:palette-v7:25.3.1'
compile 'net.hockeyapp.android:HockeySDK:4.1.3'
compile 'com.googlecode.mp4parser:isoparser:1.0.6'
compile 'com.stripe:stripe-android:2.0.2'
}
android {
compileSdkVersion 25
buildToolsVersion '25.0.2'
useLibrary 'org.apache.http.legacy'
defaultConfig.applicationId = "org.telegram.messenger"
sourceSets.main.jniLibs.srcDirs = ['./jni/']
externalNativeBuild {
ndkBuild {
path "jni/Android.mk"
}
}
dexOptions {
jumboMode = true
}
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
v2SigningEnabled false
}
release {
storeFile file("config/release.keystore")
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
v2SigningEnabled false
}
}
buildTypes {
debug {
debuggable true
jniDebuggable true
signingConfig signingConfigs.debug
applicationIdSuffix ".beta"
}
release {
debuggable false
jniDebuggable false
signingConfig signingConfigs.release
minifyEnabled false
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
foss {
debuggable false
jniDebuggable false
signingConfig signingConfigs.release
}
}
defaultConfig.versionCode = 1043
sourceSets.debug {
manifest.srcFile 'config/debug/AndroidManifest.xml'
}
sourceSets.release {
manifest.srcFile 'config/release/AndroidManifest.xml'
}
sourceSets.foss {
manifest.srcFile 'config/foss/AndroidManifest.xml'
}
productFlavors {
x86 {
ndk {
abiFilter "x86"
}
versionCode = 2
}
armv7 {
ndk {
abiFilter "armeabi-v7a"
}
versionCode = 1
}
x86_SDK23 {
ndk {
abiFilter "x86"
}
sourceSets.debug {
manifest.srcFile 'config/debug/AndroidManifest_SDK23.xml'
}
sourceSets.release {
manifest.srcFile 'config/release/AndroidManifest_SDK23.xml'
}
minSdkVersion 23
versionCode = 4
}
armv7_SDK23 {
ndk {
abiFilter "armeabi-v7a"
}
sourceSets.debug {
manifest.srcFile 'config/debug/AndroidManifest_SDK23.xml'
}
sourceSets.release {
manifest.srcFile 'config/release/AndroidManifest_SDK23.xml'
}
minSdkVersion 23
versionCode = 3
}
fat {
sourceSets.debug {
manifest.srcFile 'config/debug/AndroidManifest_SDK23.xml'
}
sourceSets.release {
manifest.srcFile 'config/release/AndroidManifest_SDK23.xml'
}
versionCode = 5
}
}
applicationVariants.all { variant ->
def abiVersion = variant.productFlavors.get(0).versionCode
variant.mergedFlavor.versionCode = defaultConfig.versionCode * 10 + abiVersion
}
defaultConfig {
minSdkVersion 16
targetSdkVersion 25
versionName "4.2.1"
externalNativeBuild {
ndkBuild {
arguments "NDK_APPLICATION_MK:=jni/Application.mk",
"APP_PLATFORM:=android-14"
abiFilters "armeabi-v7a", "x86"
}
}
}
}
apply plugin: 'com.google.gms.google-services'
build.gradle(项目:Telegram-Master)
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.2'
classpath 'com.google.gms:google-services:3.0.0'
}
}
答案 0 :(得分:0)
如果您还没有,请生成AndroidStudio 一个带密钥的密钥库(在我的情况下,我做了一个V2类型) 对于项目使用:Build - >生成签名APK。 记住密钥名称,密钥库文件名和 您使用的密码!
AndroidStudio(也是java)提供了一个keytool jre目录。您必须使用它来提取SHA1 你刚刚创建的指纹,这样: ..... AndroidStudio2.2 \ system \ restart \ jre \ bin \ keytool.exe -exportcert -list -v -alias key_name -keystore the_keystore.jks 将显示如下内容:
证书指纹: MD5:...... SHA1:A2:7E:E ...
然后,您必须转到Google的Firebase页面(*)并注册该项目。 如果你没有,你会被要求提供包名 改变了它应该是的任何东西:org.telegram.messenger和 来自密钥的SHA1。您将在以下步骤中完成 提供google-services.json文件进行下载。 请务必完成向导并在其中创建应用程序。
将检索到的文件放入Telegram \ TMessagesProj目录。
返回AndroidStudio并尝试使用构建项目 之前的相同选项:Build - >生成签名APK。
它应该有用。
PS:我发现有时AndroidStudio会锁定google-services.json,如果发生这种情况,请关闭AndroidStudio。
Firebase页面:https://console.firebase.google.com