Articles of android gradle

在Android Studio中找不到模块应用程序的Gradle build-info.xml

找不到模块应用程序的Gradle build-info.xml。 请确保您使用的是gradle插件gradle:2.0.0-alpha或更高版本 我正在使用Gradle插件:2.0.0-beta2。 我随机收到此警告,经常在此之后应用程序未更新或崩溃。 它足以清理和重建以解决问题。 有没有更好的方法来解决它?

如何从AAR依赖中排除特定资源?

模块的build.gradle文件是否有一种相当简单的方法来指示应该排除依赖项中的某些文件? 我特别想从AAR中排除某些资源。 LeakCanary是一个有趣的库,可帮助追踪内存泄漏。 但是,它具有21或更高版本的compileSdkVersion的无证要求。 虽然大多数项目都不应该有这个问题,但是对于一个库compileSdkVersion没有充分理由需要某个compileSdkVersion 。 开发团队可能已冻结其compileSdkVersion作为一般策略的一部分,仅将这些types的设置更改为其应用程序或其他内容的主要版本更新的一部分。 在这种情况下,至少对于compileSdkVersion ,需要compileSdkVersion的唯一原因是AFAICT,因为AAR有一个res/values-v21/目录,包含一个inheritance自Theme.Material的主题定义。 诊断活动使用此主题。 最终用户从未见过该活动,只有开发人员才能在debug版本中看到该活动。 坦率地说,主题方面的活动看起来并不重要。 强制一个21的compileSdkVersion只是让那个诊断活动有一个特定的主题是,恕我直言,愚蠢。 如果作为compile指令的一部分我们可以说“嘿,请跳过res/values-v21/来自这个AAR,m’kay?”。 由于-v21主题只是提供了其他地方定义的主题的替代定义,因此删除-v21主题不会破坏构建或在运行时中断事物,而只会给我们一个以Holo主题的诊断活动。 我没有看到这个答案如何与依赖关系一起工作。 我也不确定它是否完整,而且肯定似乎没有得到支持 。 它也没有真正符合“简单”的标准 – 我不希望有人尝试将它放在build.gradle文件中,只是为了阻止像LeakCanary这样的诊断库中的单个文件。 那么,有没有比这更简单的东西适用于当前版本的Android插件Gradle?

如何自定义产品口味的APK文件名?

我在build.gradle脚本中自定义Android应用程序的APK文件的名称,如下所示: android { defaultConfig { project.ext.set(“archivesBaseName”, “MyApplication”); } } 现在我正在使用产品口味: android { productFlavors { green { applicationId “com.example.myapplication.green” } blue { applicationId “com.example.myapplication.blue” } } } 有没有办法自定义每个APK的名称? 我尝试使用archiveBaseName和baseName但没有成功。 最后我想提出以下文件: build/outputs/apk/Blue-debug-1.2.1.apk build/outputs/apk/Blue-debug-unaligned.apk build/outputs/apk/Blue-release-1.2.1.apk build/outputs/apk/Blue-release-unaligned.apk build/outputs/apk/Green-debug-1.2.1.apk build/outputs/apk/Green-debug-unaligned.apk build/outputs/apk/Green-release-1.2.1.apk build/outputs/apk/Green-release-unaligned.apk

Android Gradle:在构建时动态更改versionName

我试图通过使用自定义版本的gradle-release插件来模拟Android中的Maven发布插件: https : //github.com/townsfolk/gradle-release 有趣的步骤是: 检查未提交的更改 步骤版本代码并从版本名称中删除-SNAPSHOT后缀 建立 步骤版本名称并为下一个开发版本添加-SNAPSHOT后缀 但是生成的APK总是具有以前的版本(即1.0.0-SNAPSHOT而不是1.0.0)。 版本号在gradle.properties中存储并正确更新,因此我假设我需要更新数据模型中的版本以使更改生效。 我的android插件配置: defaultConfig { versionCode versionCode as int // taken from gradle.properties versionName versionName // taken from gradle.properties minSdkVersion 10 targetSdkVersion 19 } 我试过的事情: preBuild < variant.versionName = versionName } } 但是变体中没有versionName。 preBuild < type.versionName = versionName } } 但是types中没有versionName。 preBuild < flavor.versionName = versionName […]

Android Gradle DexException:多个dex文件定义Lorg / hamcrest / Description

com.android.dex.DexException:多个dex文件定义Lorg / hamcrest / Description 尝试通过Android Studio或我的应用程序上的Gradle命令行进行调试构建/测试时发生。 发布版本(没有测试)工作正常但是一旦包含测试( hamcrest是测试库),构建就会因上述错误而失败。 我已经检查了我的模块依赖项,并且没有重复的要求, gradle -q依赖项证实了这一点。 项目settings.gradle include ‘:[library module]’ include ‘:[main module]’ 项目build.gradle buildscript { repositories { mavenCentral() } dependencies { classpath ‘com.android.tools.build:gradle:0.9.+’ classpath ‘org.robolectric.gradle:gradle-android-test-plugin:0.9.+’ } } allprojects { repositories { mavenCentral() } } [library module] build.gradle apply plugin: ‘android-library’ android { compileSdkVersion 19 buildToolsVersion “19.0.0” defaultConfig { […]

commons-logging定义了与Android Studio Update之后Android现在提供的类冲突的类

我已将Android Studio更新到版本3,现在似乎无法编译我之前编译的项目而没有错误。 错误消息如下 错误:错误:commons-logging定义与Android现在提供的类冲突的类。 解决方案包括查找没有相同问题的更新版本或替代库(例如,对于httpclient使用HttpUrlConnection或okhttp),或者使用jarjar之类的东西重新打包库。 [DuplicatePlatformClasses] 依赖是 dependencies { compile fileTree(include: [‘*.jar’], dir: ‘libs’) testCompile ‘junit:junit:4.12’ compile ‘com.android.support:appcompat-v7:27.0.0’ compile ‘com.android.support:design:27.0.0’ compile ‘com.google.api-client:google-api-client-android:1.23.0’ exclude module: ‘httpclient’ compile ‘com.google.http-client:google-http-client-gson:1.23.0’ exclude module: ‘httpclient’ compile ‘com.google.firebase:firebase-core:11.4.2’ } 和错误似乎是由 compile ‘com.google.api-client:google-api-client-android:1.23.0’ exclude module: ‘httpclient’ compile ‘com.google.http-client:google-http-client-gson:1.23.0’ exclude module: ‘httpclient’ 我已经使用了exclude module: ‘httpclient’那么为什么它不能编译? 这是Android Studio 3和\或包含com.android.tools.build:gradle:3.0.0插件的错误还是我遗漏了什么? 使用以前的版本编译完全相同的项目没有问题。

Android Studio Gradle问题升级到0.5.0版 – Gradle从0.8迁移到0.9 – Android Studio也升级到0.8.1

升级后的消息说明: Failed to refresh Gradle project ‘XXX’ The project is using an unsupported version of the Android Gradle plug-in (0.8.3). Version 0.9.0 introduced incompatible changes in the build language. Please read the migration guide to learn how to update your project. 升级到Android Studio到版本> = 0.8.0后出现同样的问题

无法解析com.google.android.gms play-services-auth:11.4.0

我想在Android项目中为Android FirebaseUI – Auth编写代码但是从最近两天开始,我在当前代码中遇到错误,不知道如何解决它。 努力但却没有以正确的方式发生。 这是我的build.gradle(项目:FriendlyChat) // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() mavenLocal() } dependencies { classpath ‘com.android.tools.build:gradle:2.2.2’ // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files classpath ‘com.google.gms:google-services:3.0.0’ } } allprojects { […]

创建包含javadoc和sources的Android库AAR

我的团队正在开发一个Android库,用于我们开发的一些示例应用程序。 该库创建为AAR文件。 这是它的build.gradle apply plugin: ‘com.android.library’ apply from: ‘deploy.gradle’ android { compileSdkVersion 20 buildToolsVersion ‘20.0.0’ packagingOptions { exclude ‘LICENSE.txt’ exclude ‘LICENSE’ exclude ‘NOTICE’ } defaultConfig { // Excluded for brevity } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } lintOptions { abortOnError false // if true, check all issues, including those that […]

Gradle构建失败

我的项目在调试模式下编译并执行良好,但是当我尝试生成签名的apk时,会出现错误。 这将显示在消息日志中: :app:proguardRelease Warning:android.support.v4.app.DialogFragment: can’t find referenced class android.support.v4.app.DialogFragment$DialogStyle Warning:android.support.v4.app.FragmentTransaction: can’t find referenced class android.support.v4.app.FragmentTransaction$Transit Warning:android.support.v4.view.ViewCompat: can’t find referenced class android.support.v4.view.ViewCompat$ResolvedLayoutDirectionMode Warning:android.support.v4.view.ViewCompat: can’t find referenced class android.support.v4.view.ViewCompat$LayoutDirectionMode Warning:android.support.v4.view.ViewCompat: can’t find referenced class android.support.v4.view.ViewCompat$LayerType Warning:android.support.v4.view.ViewCompat: can’t find referenced class android.support.v4.view.ViewCompat$AccessibilityLiveRegion Warning:android.support.v4.view.ViewCompat: can’t find referenced class android.support.v4.view.ViewCompat$ImportantForAccessibility Warning:android.support.v4.view.ViewCompat: can’t find referenced class android.support.v4.view.ViewCompat$OverScroll Warning:android.support.v4.widget.DrawerLayout: can’t find referenced […]