Articles of android gradle

在Android Studio v 0.5.7中禁用按需配置

在Android Studio的最新更新(v 0.5.7)中,默认情况下使用“configure-on-demand”选项进行gradle构建。 这导致我当前的项目构建出现问题。 当我尝试将项目与Android Studio中的gradle文件同步时,出现以下错误: 错误:配置项目’:PROJECT_NAME’时出现问题。 未find名称“default”的配置。 但是,当我使用没有“configure-on-demand”标志的命令行构建时,一切正常。 我尝试通过在我的gradle.properties中添加“org.gradle.configureondemand = false”来禁用它,但似乎Android Studio不尊重这一点。 我仍然得到相同的错误,并且gradle日志显示: 按需配置是一项孵化function 有没有办法在Android Studio中禁用它?

使用Java 8模块Gradle Android Project

正如我在本文中看到的 , Java 8目前尚未得到Android正式支持。 所以我很感兴趣是否可以使用Java 7构建带有Java 7和Java模块(作为依赖项)的Android模块。 作为一个例子,我正在尝试创建一个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提到)很好,但是他们只支持lambda,所以不能访问Stream API , […]

更新Android Studio 3.1后获取发布签名APK时出错

将我现有的项目迁移到Android Studio 3.1后,它没有编译。 以下是日志详细信息: org.gradle.api.tasks.TaskExecutionException:任务’:app:mergeReleaseResources’的执行失败。 在org.gradle上的org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)位于org.gradle.api.internal的org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)上的.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51) org.gradle.api.internal.tasks.execution上的.gasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60) org.gradle.api.internal.tasks.execu上的org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)中的.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97) 在org.gradle.api.internal.tasks.exe执行(SkipTaskWithNoActionsExecuter.java:52)org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter中的.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)。执行(SkipOnlyIfTaskExecuter.java:54)org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter。 java:34)at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker $ 1.run(DefaultTaskGraphExecuter.java:248)org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)at org。 gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)org.gradle.internal.progress.DefaultBuild 在Org.gradle.internal.progress.DefaultBupeOperationExecutor.run(DefaultBuildOperationExecutor.java:110)上的OperationExecutor.execute(DefaultBuildOperationExecutor.java:199)org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)at org.gradle.execution.taskgraph .DefaultTaskPlanExecutor $ TaskExecutorWorker.access $ 200(DefaultTaskPlanExecutor.java:79)org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker $ 1.execute(DefaultTaskPlanExecutor.java:104)at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker $ 1。执行(DefaultTaskPlanExecutor.java:98)org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.jav) a:626)org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:581)org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)at org.gradle.internal .concurrent.ExecutorPolicy $ CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)at org.gradle.internal.concurrent.ManagedExecutorImpl $ […]

如何将apklib转换为aar

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

已定义资源条目ic_launcher

可以任何身体PLZ帮助他解决这个问题我想在我的android工作室项目中使用这个库 https://github.com/daimajia/AndroidImageSlider 当我把它放在我的gradle文件中时它会显示这些错误 Information:Gradle tasks [:app:generateDebugSources] Information:res\drawable-mdpi-v4\ic_launcher.png:0: error: Resource entry ic_launcher is already defined. Information:res\drawable-mdpi\ic_launcher.png:0: Originally defined here. Information:res\drawable-xhdpi-v4\ic_launcher.png:0: error: Resource entry ic_launcher is already defined. Information:res\drawable-xhdpi\ic_launcher.png:0: Originally defined here. Information:res\drawable-xxhdpi-v4\ic_launcher.png:0: error: Resource entry ic_launcher is already defined. Information:res\drawable-xxhdpi\ic_launcher.png:0: Originally defined here. Information:1 error Information:0 warnings Information:See complete output in console Error:Execution failed for task […]

Google Play服务不兼容

我一直在我的应用程序上使用谷歌的融合位置服务进行位置跟踪。 我使用Android studio和它的gradle构建系统。 最近我发现谷歌的位置服务存在一个大问题。 我的gradle构建文件包含此依赖项:compile’c​​om.google.android.gms compile ‘com.google.android.gms:play-services:+ 。 因此,当我重建我的项目时,Android工作室下载了谷歌播放服务的最新版本,即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 。 我无法在我的设备上更新Google Play服务。 它声明它是最新的(5.0.89)。 使用此解决方案,我设法使跟踪系统正常工作,但它不能在我拥有的另一台设备(W8L设备)上运行,该设备还有另一个版本的google play服务:5.0.84。 谷歌似乎并不是一件罕见的事情。 如何解决此问题,并确保谷歌不会弄乱我的应用程序。

资源输入com.crashlytics.android.build_id已经定义

我的项目正在运行,一切都很好,但不知道突然发生的事情,当我想建立我的项目时,我遇到了错误。 这是Gradle输出: /Users/admin/Desktop/android/MY-Project/build/intermediates/res/project/debug/values/values.xml:265: error: Resource entry com.crashlytics.android.build_id is already defined. /Users/admin/Desktop/android/MY-Project/build/intermediates/res/project/debug/values/com_crashlytics_build_id.xml:9: Originally defined here. 由于这两个文件都是自动生成的,我无能为力:( 我试图通过Build>“Clean project”清理项目,但什么也没发生。 我尝试通过./gradlew clean assembleDebug清理项目,但什么都没发生。 我试图通过文件>“无效缓存/重新启动”使Android Studio的缓存无效,但什么也没发生。 我甚至重新启动了我的f.laptop,但是当我构建项目时仍然显示相同的问题。 我在构建脚本中有这个类路径但是如上所述它正在工作…… dependencies { classpath ‘com.android.tools.build:gradle:1.0.1’ classpath ‘com.crashlytics.tools.gradle:crashlytics-gradle:1.+’ } 任何建议将不胜感激。 谢谢。

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

我在Arch Linux上使用Android Studio 3.0 Canary 3,我正在尝试制作一个小应用程序。 在发布问题之前进行了一些研究,但我发现的解决方案都不适用于我。 任何帮助将非常感激。 谢谢 错误:任务’:app:mergeDebugResources’的执行失败。 >错误:java.lang.RuntimeException:java.lang.RuntimeException:com.android.builder.internal.aapt.AaptException:AAPT2编译失败: aapt2编译-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无效维度 – 错误:/home/xhensi/AndroidStudioProjects/FindRestaurant/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:245无效维度 – 错误:/home/xhensi/AndroidStudioProjects/FindRestaurant/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:283无效维度 – 错误:/home/xhensi/AndroidStudioProjects/FindRestaurant/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:309无效维度 – 错误:/home/xhensi/AndroidStudioProjects/FindRestaurant/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:310无效维度 – 错误:/home/xhensi/AndroidStudioProjects/FindRestaurant/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:312无效维度 – 错误:/home/xhensi/AndroidStudioProjects/FindRestaurant/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:313无效维度 – 错误:/home/xhensi/AndroidStudioProjects/FindRestaurant/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:314无效维度

如何覆盖Robolectric运行时依赖性存储库URL?

我们试图从我们自己的内部Nexus存储库中使用org.robolectric:robolectric:3.0依赖。 问题是Robolectric尝试在运行时从公共存储库加载一些依赖项( 如此处所述 ),并忽略build.gradle中的任何存储库重写。 由于我们无法从Intranet访问该公共位置,因此在尝试加载该依赖项后,我的测试会超时: [警告]无法从存储库sonatype( https://oss.sonatype.org/content/groups/public/ )获取资源’org.robolectric:android-all:jar:5.0.0_r2-robolectric-1’:传输错误file:操作超时 Robolectric配置文档的底部部分建议将其添加到Gradle配置中以覆盖URL: android { testOptions { unitTests.all { systemProperty ‘robolectric.dependency.repo.url’, ‘https://local-mirror/repo’ systemProperty ‘robolectric.dependency.repo.id’, ‘local’ } } } 不幸的是,我已经测试了,我从未看到系统属性被设置。 我从我的自定义Robolectric跑步者(扩展RobolectricGradleTestRunner )中打印出来,并且系统属性保持设置为null。 System.out.println(“robolectric.dependency.repo.url: ” + System.getProperty(“robolectric.dependency.repo.url”)); 我也尝试做类似于这个注释的东西(但是在RobolectricGradleTestRunner中不存在该方法),我也尝试直接在我的自定义Robolectric运行器中设置系统属性,这似乎没有帮助。 @Config(constants = BuildConfig.class) public class CustomRobolectricRunner extends RobolectricGradleTestRunner { private static final String BUILD_OUTPUT = “build/intermediates”; public CustomRobolectricRunner(Class testClass) throws InitializationError { super(testClass); […]

compileSdkVersion’Google Inc.:Google APIs:23’和compileSdkVersion 23之间有什么区别?

在Gradle.build文件中,我看到一些项目使用 compileSdkVersion=”‘Google Inc.:Google APIs:23″ 有些人只是使用这个号码 compileSdkVersion=”23″ 两者有什么区别?