Articles of android gradle

Google Play服务不兼容

我一直在我的应用程序上使用谷歌的融合位置服务进行位置跟踪。 我使用Android工作室,它是gradle构build系统。 最近我发现了一个与谷歌的位置服务的大问题。 我的gradle构build文件包含这个依赖项:compile'c​​om.google.android.gms compile 'com.google.android.gms:play-services:+ 。 所以当我重build我的项目时,Android工作室下载了最新版本的Google Play服务,即5.2.08。 不过,我的设备(三星Galaxy S4)只有5.0.89版本。 显然这两个版本不兼容,我得到这个错误: Google Play services out of date. Requires 5208000 but found 5089038 Google Play services out of date. Requires 5208000 but found 5089038 。 我无法更新我的设备上的谷歌播放服务。 它指出它是最新的(5.0.89)。 使用这个解决scheme,我设法使跟踪系统工作,但它不会在我拥有的另一个设备(W8L设备)上工作,它有另一个谷歌播放服务版本:5.0.84。 这似乎并不罕见的事情发生在谷歌。 我怎样才能解决这个问题,并确保谷歌不会搞乱我的应用程序。

Android执行失败的任务应用程序:proguardRelease

我无法为我的应用程序生成一个签名的APK,我坚持与错误java.io.IOException执行失败的任务:'应用程序:proguardRelease'我有我认为是一个基本的gradle文件见下文 apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.1" defaultConfig { applicationId "com.okason.clients" minSdkVersion 16 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.google.api-client:google-api-client:1.19.0' compile 'com.google.android.gms:play-services:6.1.71' compile 'com.android.support:support-v4:21.0.0' compile 'com.android.support:appcompat-v7:21.0.0' } 生成的Proguard-rules.pro文件是空的amd我没有触及SDK中的proguard-android.txt文件。 我甚至试图将这个文件复制到应用程序的根目录,作为app.gradle文件相同的位置没有成功。 我试图运行这个命令gradlew.bat assembleRelease根据这个[SO […]

如何将apklib转换为aar

由于Gradle不支持apklib依赖关系,如何从apklib依赖关系迁移到aar依赖关系? 是否有可能手动或自动将apklib依赖转换为aar ? 如果是 – 如何,如果不是 – 为什么不呢? 在这个问题中,我假设我没有apklib原始项目,而是文件本身。

带有Java 8模块的Gradle Android项目

正如我在这篇文章中看到的 , Java 8现在还没有被Android正式支持。 所以我很感兴趣,如果有可能与Java 7和Java模块(作为依赖项)build立Android模块。 作为一个例子,我试图创build一个Gradle项目,它将包含一个Android模块和一个Java模块作为依赖项。 通过为这两个模块设置下面的compileOptions ,一切正常。 compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } 但是,如果我尝试改变我的Java模块的compileOptions compileJava { sourceCompatibility = 1.8 targetCompatibility = 1.8 } 我得到以下错误: Error:Execution failed for task ':fc-android:preDexFreeDebug'. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_45\bin\java.exe'' finished with non-zero exit value 1 所以问题是,实际上可能有用1.7版编译的Android模块以及用1.8编译的依赖Java模块吗? 如果不是,那为什么? 更新: Retrolamba for Gradle (由@Saeed提到)很好,但是他们只支持lambdas,所以不能访问Stream API , DateTime […]

使用哪个gradle文件将应用程序设置为可debugging?

我是新手到android开发。 我刚刚开始设置我的设备来debugging我的应用程序。 而通过android开发工具,它说build.gradle文件中设置buildTypes debuggable为true。 我不知道要使用gradle.build(Module)或gradle.build(project)哪个档次的档案?

依赖org.json:json:20090211被debugging时会被忽略,因为它可能与Android提供的内部版本冲突

当我运行android studio时,出现下面的警告: 依赖org.json:json:20090211被debugging时会被忽略,因为它可能与Android提供的内部版本冲突。 如有问题,请用jarjar重新包装以更改课程包 我怎样才能解决这个错误? 谢谢。

Android Studio 3.0,AAPT2编译失败 – 资源文件中的无效维度

我在Arch Linux上使用Android Studio 3.0 Canary 3,我正在试图制作一个小应用程序。 在发布问题之前做了一些研究,但是我发现的解决scheme都不适用于我。 任何帮助将非常感激。 谢谢 错误:任务':app:mergeDebugResources'的执行失败。 >错误:java.lang.RuntimeException:java.lang.RuntimeException:com.android.builder.internal.aapt.AaptException:AAPT2编译失败: aapt2 compile -o / home / xhensi / AndroidStudioProjects / FindRestaurant / app / build / intermediates / res / merged / debug /home/xhensi/AndroidStudioProjects/FindRestaurant/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values .XML 问题: – 错误:/home/xhensi/AndroidStudioProjects/FindRestaurant/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:244 invalid dimen – 错误:/home/xhensi/AndroidStudioProjects/FindRestaurant/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:245 invalid dimen – 错误:/home/xhensi/AndroidStudioProjects/FindRestaurant/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:283 invalid dimen – 错误:/home/xhensi/AndroidStudioProjects/FindRestaurant/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:309 invalid dimen – 错误:/home/xhensi/AndroidStudioProjects/FindRestaurant/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:310 […]

多次调用Gradle buildConfig

我很难找出一种方法来使用Gradle将多行添加到我的BuildConfig。 看来,当我第二次调用buildConfig时,第一个消失了。 我最初是从不同的地方添加这个buildConfig,但是如果我这样做,可以创build一个最小的可重复testing: buildTypes { debug { versionNameSuffix "-DEBUG" buildConfig "public static final int THING_ONE = 1;" buildConfig "public static final int THING_TWO = 2;" } release { zipAlign true buildConfig "public static final int THING_ONE = 3;" buildConfig "public static final int THING_TWO = 4;" } } 然后当我尝试在代码中使用它: public class Thing { public static […]

禁用依赖性权限

目前我正面临以下问题: 我开发了应用程序'A',它使用权限1,2,3,并使用第三方库'B'作为依赖项(使用maven&gradle添加)。 库“B”使用权限4和5.现在,在构build应用程序时,清单合并器将权限4和5添加到应用程序“A”。 我怎样才能防止这种情况,只有最终清单中的权限1,2和3? 我的第一个猜测是使用其中一个清单合并标记,如下所示: http : //tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-Markers

Android构build工具1.1.0,unit testing文件夹?

我最近安装了最新的工具从谷歌到我的Android项目: buildscript { repositories { jcenter() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:1.1.0' } } allprojects { repositories { jcenter() } } apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.2" compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } defaultConfig { applicationId "com.xxx" minSdkVersion 10 targetSdkVersion 21 versionCode 200 versionName "2.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } signingConfigs { debug […]