Tec*_*ech 8 android gradle firebase google-play-services android-studio
长话短说:我正在使用Azure移动应用服务更改Android应用程序以使用Google Firebase.Firebase非常简单直接地为Javascript设置,但我一直在设置Android设置方面存在无穷无尽的问题.
我的应用程序有三个模块:Full,Lite和第三个充当库的模块.我正在尝试设置应用程序,以便完整版本具有Firebase支持,我使用Android Studio内置的助手.执行此操作后,这将无法构建,因为添加的JSON文件仅包含完整版本软件包名称.我最终在Firebase控制台中创建了3个版本的应用程序,并手动将JSON文件添加到项目中(net.gptiming,net.gptiming.full和net.gptiming.library).这似乎有用 - 我可以使用Firebase库和构建的程序.
我发现的下一个问题是Firebase无法初始化 - 经过几个小时的拖网搜索和堆栈溢出后,我发现这可能是由于库不匹配造成的.我的第一步是更新Android studio(至2.3.2)以及最新的Google存储库和构建工具.
现在这又产生了另一个问题 - 一个我似乎无法在网上找到的问题.由于以下错误,Gradle将无法同步:
"Could not get unknown property 'LibraryVariants' for object of type com.android.build.gradle.LibraryExtension"
Run Code Online (Sandbox Code Playgroud)
此错误显示在库模块gradle构建文件中,其中包含以下内容:
apply plugin: 'com.android.library'
android {
    compileSdkVersion rootProject.compileSdkVersion
    buildToolsVersion rootProject.buildToolsVersion
    buildToolsVersion '23.0.2'
}
dependencies {
    compile 'com.google.code.gson:gson-parent:2.7'
    compile 'com.google.firebase:firebase-core:10.2.1'
    compile 'com.google.firebase:firebase-database:10.2.1'
    compile 'com.google.firebase:firebase-auth:10.2.1'
}
apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)
项目gradle文件如下:
buildscript {
    repositories {
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'
        classpath 'com.google.gms:google-services:3.1.0'
    }
}
allprojects {
    repositories {
        mavenCentral()
        jcenter()
    }
}
ext {
    compileSdkVersion = 19
    buildToolsVersion = "23.0.2"
    storeFilePath = System.getenv('STORE_FILE')
    storePassword = System.getenv('STORE_PASSWORD')
    keyAlias = System.getenv('KEY_ALIAS')
    keyPassword = System.getenv('KEY_PASSWORD')
}
Run Code Online (Sandbox Code Playgroud)
这是完整版模块文件:
apply plugin: 'com.android.application'
dependencies {
    compile project(':gptiming-gptiming')
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.firebase:firebase-database:10.2.1'
    compile 'com.google.firebase:firebase-auth:10.2.1'
}
android {
    compileSdkVersion rootProject.compileSdkVersion
    buildToolsVersion rootProject.buildToolsVersion
    if (rootProject.storeFilePath) {
        signingConfigs {
            release {
                storeFile file(rootProject.storeFilePath)
                storePassword rootProject.storePassword
                keyAlias rootProject.keyAlias
                keyPassword rootProject.keyPassword
            }
        }
        buildTypes {
            release {
                signingConfig signingConfigs.release
            }
        }
    }
    buildToolsVersion '25.0.0'
}
apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经尝试将Gradle版本更改为2.3,但Android studio 2.3.2将不支持较旧的Gradle版本.我也尝试将构建工具版本更改为上面显示的版本,这没有任何区别.Android工作室没有提供有关此问题的额外帮助.
很抱歉这个问题很长,但我在Android开发方面是一个新手 - 我不完全理解库方面如何与Gradle一起工作以及如何正确集成Firebase,因为文档有点稀疏且内置工具属于没用.我不知道错误是否与Firebase有关,或者它是否只是一个简单的Gradle不匹配,但是我们非常感谢任何帮助!
我应该说在更新Android Studio版本和相关工具之前我对这个库结构没有任何问题 - 但是这可能已经被Firebase库问题掩盖了.在这些更改之前,该应用程序与Azure配合使
小智 1
我的库模块也有同样的问题,并通过更新 gradle 和 google-services 版本解决了这个问题。
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
        classpath 'com.google.gms:google-services:3.1.1'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
allprojects {
    repositories {
        google()
        jcenter()
    }
}
task clean(type: Delete) {
    delete rootProject.buildDir
}
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           2394 次  |  
        
|   最近记录:  |