Articles of android gradle

Gradle – 为另一个模块的测试添加依赖项

我有一个多模块gradle项目,如下所示: Parent |–server |–application (android module) +–common 服务器测试依赖于通用模块测试。 为此,我补充道 testCompile files(project(‘:common’).sourceSets.test.output.classesDi compileTestJava.dependsOn tasks.getByPath(‘:common:testClasses’) 它工作得很好。 不幸的是,当我尝试为同样依赖于公共模块测试的应用程序模块做同样的事情时,它将无法工作。 它失败了: Build file ‘application\build.gradle’ line: 103 A problem occurred evaluating project ‘:application’. Could not find property ‘sourceSets’ on project ‘:common’ 谷歌搜索后我也试过了 project.evaluationDependsOn(‘:common’) testCompile files(project(‘:common’).sourceSets.test.output.classesDir) 但失败了另一个例外: Project application: Only Jar-type local dependencies are supported. Cannot handle: common\build\classes\test 有想法该怎么解决这个吗?

无法在Android架构组件1.1.1中find类DiffCallback:

最近我在gradle文件中更新了android.arch支持库版本 // ViewModel and LiveData implementation “android.arch.lifecycle:extensions:1.1.1” // alternatively, just ViewModel implementation “android.arch.lifecycle:viewmodel:1.1.1” // alternatively, just LiveData implementation “android.arch.lifecycle:livedata:1.1.1” annotationProcessor “android.arch.lifecycle:compiler:1.1.1” // Room (use 1.1.0-alpha1 for latest alpha) implementation “android.arch.persistence.room:runtime:1.0.0” annotationProcessor “android.arch.persistence.room:compiler:1.0.0” // Paging implementation “android.arch.paging:runtime:1.0.0-alpha7” 现在我声明得到这个错误

我怎么知道android gradle插件的applicationVariants中的属性?

我正在使用带有gradle插件的Android Studio来开发应用程序。 我在DSL Reference上学习了一些android gradle插件的用法。 但我发现的一件事是doc上的applicationVariants部分很难理解。 它只给出了这样的描述: DomainObjectSet applicationVariants 应用程序变体列表。 由于集合是在评估之后构建的,因此应该与Gradle的all迭代器一起使用来处理未来的项目。 但是ApplicationVariant中的属性是什么? 我不知道。 我没有find任何引用链接来描述ApplicationVariant。 仅在页面底部的Gradle Plugin用户指南中。 它记录了applicationVariants,libraryVariants和testVariants中的可用属性。 但我发现其中一些属性已被弃用了很长时间,而且Android没有更新此页面。 那么我在哪里可以findApplicationVariant中最新的属性?

更新到3.0.0后,Android Studio“错误:无法读取元数据”

我已经将Android Studio更新到v3.0.0,现在我无法构建我的项目。 Android Studio在构建和构建崩溃时将.flat添加到资源文件名,因为它无法识别.flat扩展名。 我试图清理项目并重建它但我仍然得到这个错误。 我不知道是什么原因引起的。 我希望有人可以帮助我解决我的问题,因为Studio无法成功构建,它无法find我的依赖项,我无法工作。 Gradle控制台输出 Executing tasks: [clean, :TP2A:assembleDebug, :TP2B:assembleDebug] Configuration on demand is an incubating feature. Configuration ‘compile’ in project ‘:TP2A’ is deprecated. Use ‘implementation’ instead. Configuration ‘androidTestCompile’ in project ‘:TP2A’ is deprecated. Use ‘androidTestImplementation’ instead. Configuration ‘testCompile’ in project ‘:TP2A’ is deprecated. Use ‘testImplementation’ instead. Configuration ‘compile’ in project ‘:TP2B’ […]

无法在新安装的Android工作室中构建或清除裸露的单个活动项目

我最近在我的Ubuntu 14.04 LTS上安装了最新的稳定版Android Studio。 SDK已正确配置。 我从空白的活动模板中创建了一个“活动”项目,并且没有对其进行任何更改。 在尝试构建或清理时,我偶尔会得到以下内容: Failed to complete Gradle execution. Cause: Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed) 这似乎是由VM的堆大小引起的。 但是添加XX:MaxPermSize=1024m只会使它发生的次数减少,这意味着,有时候我没有得到这个错误,没有改变任何东西。 所以要么它不是真正的解决方案,要么1024米是不够的(这似乎不对..) 但是,当我没有收到此错误时,构建仍然失败: Information:Gradle tasks [:app:assembleDebug] :app:preBuild UP-TO-DATE :app:preDebugBuild UP-TO-DATE :app:compileDebugNdk UP-TO-DATE :app:checkDebugManifest :app:prepareDebugDependencies :app:compileDebugAidl UP-TO-DATE :app:compileDebugRenderscript UP-TO-DATE :app:generateDebugBuildConfig UP-TO-DATE :app:generateDebugAssets UP-TO-DATE :app:mergeDebugAssets UP-TO-DATE :app:generateDebugResValues UP-TO-DATE :app:generateDebugResources […]

当我按下生成签名的apk时,我只得到app-release-unaligned.apk

我总是得到“app-release-unaligned.apk”。 我无法获得“app-release.apk”。 但在我更新Android SDK之前,按下Build-> Generate Signed Apk后,我可以同时获得“app-release.apk”和“app-release-unaligned.apk”… 系统Mac OS。 Android Studio 1.5.1。 Android SDK工具25.1.1。 Android SDK Platform-tools 23.1。 Android SDK Build-tools 23.0.3。 我在Android Developer Tools Google Plus上发现了类似的问题 UPD1我用cmd来对齐我的apk。 因为我无法将我的应用程序发布到谷歌播放。 zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk 。

在清单中使用flavor的包

鉴于以下应用程序的风格: productFlavors { pro { applicationId = “com.example.my.pkg.pro” } free { applicationId = “com.example.my.pkg.free” } } 我需要声明GCM权限: com.example.gcm´必须替换为com.example.my.pkg.pro或com.example.my.pkg.free具体取决于当前的风味。 如何配置清单以自动选择applicationId字段中定义的包?

“RobolectricTestRunner.class”在Android Studio中无法识别

我正在尝试使用Robolectric来运行unit testing,但Android Studio无法识别该类: @RunWith(RobolectricTestRunner.class) 细节: classpath ‘com.android.tools.build:gradle:3.0.0’ 我正在导入依赖: testImplementation “org.robolectric:robolectric:3.5.1” 和: android { testOptions { unitTests { includeAndroidResources = true } } } 它似乎没有出现导入类的选项。 我应该添加任何我忘记的依赖项吗? 错误: error: package org.robolectric does not exist error: package org.robolectric does not exist error: package org.robolectric.shadows does not exist error: cannot find symbol class RobolectricTestRunner error: cannot find symbol variable […]

Gradle依赖项更新

在Android Studio中使用Gradle的一个优点是它有助于依赖管理。 因此,如果我在build.gradle文件中使用了特定版本的库,那么一旦更高版本可用,我将如何强制它更新依赖版本? 我的build.gradle中的一些依赖项被指定为 dependencies { compile project(‘:facebookSDK’) compile files(‘libs/picasso-2.1.1.jar’) compile files(‘libs/crouton-1.8.1.jar’) }

Android Studio 3.1:找不到org.jetbrains.trove4j:trove4j:20160824

昨天,我将Android Studio更新为3.1,我收到此错误: Could not find org.jetbrains.trove4j:trove4j:20160824. Searched in the following locations: https://repo.maven.apache.org/maven2/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.pom https://repo.maven.apache.org/maven2/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.jar https://dl.google.com/dl/android/maven2/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.pom https://dl.google.com/dl/android/maven2/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.jar Required by: project :library > com.android.tools.build:gradle:3.0.1 > com.android.tools.build:gradle-core:3.0.1 > com.android.tools.lint:lint:26.0.1 > com.android.tools.lint:lint-checks:26.0.1 > com.android.tools.lint:lint-api:26.0.1 > com.android.tools.external.com-intellij:intellij-core:26.0.1 这是我项目的gradle文件: buildscript { repositories { jcenter() maven { url ‘https://maven.google.com/’ name ‘Google’ } } dependencies { classpath ‘com.android.tools.build:gradle:3.0.1’ // classpath ‘com.google.gms:google-services:1.5.0-beta2’ classpath ‘com.google.gms:google-services:3.1.1’ // […]