Articles of android gradle

如何在gradle中获得当前的味道

我的应用程序有两种产品口味: productFlavors { europe { buildConfigField(“Boolean”, “BEACON_ENABLED”, “false”) } usa { buildConfigField(“Boolean”, “BEACON_ENABLED”, “true”) } } 现在我想在任务中获取当前的flavor名称(我在Android Studio中选择的名称)以更改路径: task copyJar(type: Copy) { from(‘build/intermediates/bundles/’ + FLAVOR_NAME + ‘/release/’) 我怎样才能在Gradle中获得FLAVOR_NAME? 谢谢

IOException:升级到Android Studio 3.1时无法find字节代码

昨天,谷歌宣布Android Studio 3.1现在可以在稳定发布渠道下载。 所以我决定尝试一下。 在此之前,我的项目已成功构建,但在我将AS升级到3.1并将gradle构建工具升级到com.android.tools.build:gradle:3.1.0 (它强制升级gradle包装器4.4)后,它失败并出现以下exception: java.lang.RuntimeException: com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: java.io.IOException: Failed to find byte code for android/hardware/camera2/CameraManager$TorchCallback at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:55) at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:104) at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:212) at sun.reflect.GeneratedMethodAccessor309.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:46) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70) […]

RxJavaPlugins错误未find类“com.google.devtools.build.android.desugar.runtime.ThrowableExtension”

升级Android Studio 3.0 Beta 1后出现以下错误。 当我降级时,错误消失了。 Studio Build:Android Studio 3.0 Beta 1 Gradle插件版本:’com.android.tools.build:grad:3.0.0-beta1’Gradle版本:.0.0-beta1 Java版本:8 OS:MacOSX java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension; at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:364) at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:113) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6121) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) Caused by: java.lang.ClassNotFoundException: Didn’t find class “com.google.devtools.build.android.desugar.runtime.ThrowableExtension” on path: DexPathList[[zip file “/data/app/sark.savvy.Debug-1/base.apk”, zip file “/data/app/sark.savvy.Debug-1/split_lib_dependencies_apk.apk”, zip […]

Android库JAR是否依赖于Android库AAR?

我有一个Android库项目FooLib 。 FooLib引用了像Android Context的东西,但不需要任何资源文件( res/东西),所以我现在将它打包为一个JAR,供我的应用程序使用。 我现在想让FooLib依赖于BarLib ,但BarLib 确实使用资源,所以我不能将BarLib为JAR。 相反,它被打包成一个AAR。 我有可能让FooLib依赖于BarLib但继续将FooLib为JAR? 或者,在FooLib中有一个AAR依赖,迫使我把它变成一个AAR呢?

如何降级android studio gradle中的proguard版本?

我正在尝试使用scala和android studio来构build一个android应用程序。 在proguard编译失败,例外: Error:java.lang.ArrayIndexOutOfBoundsException: 4 at proguard.classfile.editor.InterfaceDeleter.visitSignatureAttribute(InterfaceDeleter.java:162) at proguard.classfile.attribute.SignatureAttribute.accept(SignatureAttribute.java:97) 我在另一个地方( http://sourceforge.net/p/proguard/bugs/549/ )发现这个问题是由scala中的一个bug造成的,但是它只发生在proguard 5.1中,而不是在proguard 5.0中。 现在我的问题是:我怎么能安装android studio,以便它会使用proguard 5.0?

将项目迁移到新的实验性gradle插件

我尝试将我的Android项目迁移到新的实验gradle插件。 我按照这个页面上的指示。 我对所需文件进行了更改,但是当我尝试使用Gradle文件同步项目时出现错误。 错误:无法加载类“com.android.build.gradle.managed.ProductFlavor_Impl”。 这种意外错误的可能原因包括: Gradle的依赖关系caching可能已损坏(有时发生在networking连接超时之后)。重新下载依赖项并同步项目(需要networking) Gradle构build过程(守护进程)的状态可能已损坏。 停止所有的Gradle守护进程可能会解决这个问题。 停止Gradle构build过程(需要重新启动) 您的项目可能使用与项目中的其他插件或项目请求的Gradle版本不兼容的第三方插件。 在损坏的Gradle进程的情况下,您也可以尝试closuresIDE,然后杀死所有的Java进程。 build.gradle在我的app文件夹是非常相似的,如下所示: apply plugin: 'com.android.model.application' apply plugin: 'maven' repositories { maven { url = getBaseRepository() credentials { username = NEXUS_USERNAME password = NEXUS_PASSWORD } } mavenCentral() } def int CACHE_LIMIT = CACHE_CHANGING_MODULES_FOR_SECONDS.toInteger() configurations.all { resolutionStrategy.cacheChangingModulesFor CACHE_LIMIT, 'seconds' } model { android { compileSdkVersion = 23 […]

错误:任务的执行失败,以非零的退出值1结束

错误:执行任务':onyxenrollwizardsampleapp:processDebugResources'失败。 com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'command'C:\ Android \ sdk \ build-tools \ 23.0.2 \ aapt.exe'零出口值1 这是我的Gradle文件。 请帮助我 apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.example.onyx_enroll_wizard_sample_app" minSdkVersion 14 targetSdkVersion 23 } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } lintOptions { abortOnError false } } repositories { mavenCentral() maven { url 'http://nexus.diamondfortress.com/nexus/content/repositories/releases' […]

gradlew在mergeDebugResources上build立冻结

我build立debugging应用程序使用gradlew在谷歌教程https://developer.android.com/training/basics/firstapp/running-app.html 我被创build的项目使用 android create project –target 2 -g -v 2.9–name myAppName –path ./MyAppDirectory –activity MyActivity –package com.mypackage 这是我的build.gradle文件 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:1.5.0' } } apply plugin: 'android' android { compileSdkVersion 'Google Inc.:Google APIs:23' buildToolsVersion '23.0.2' buildTypes { release { //runProguard false //minifyEnabled true proguardFile getDefaultProguardFile('proguard-android.txt') } } } 我构builddebugging应用程序使用命令 […]

Gradle:下载包含的aar-library的依赖关系

我写了一个库项目cameraBarcodeScanner内置到aar文件。 该库在build.gradle中定义了以下依赖项: dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.0' compile 'com.google.zxing:core:3.2.1' compile 'com.journeyapps:zxing-android-embedded:3.2.0@aar' } 我在testing应用程序中使用库如下所示: dependencies { compile(name: 'cameraBarcodeScanner-release', ext: 'aar') } Gradlefind应用程序并能够构build它。 但是,在运行时,android无法find位于zxing-android-embedded 。 在我看来,这个gradle并没有下载库项目的依赖关系。 我也试过: dependencies { compile(name: 'cameraBarcodeScanner-release', ext: 'aar'){ transitive = true } 但是这也没有帮助。 我必须以某种方式公开图书馆的依赖关系吗? 你将如何使用一个库,使gradle下载它的依赖关系? 提前致谢!

如何解决java.util.zip.ZipException重复条目:com / google / gson / annotations / Expose.class?

我已经使用fabrik插件实现twitterlogin,在设置twitter集成之后,我正面临着这个问题,有人可以build议我这有什么问题吗? 我粘贴了我的gradle和logcat。 Gradle代码 buildscript { repositories { maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'io.fabric.tools:gradle:1.+' } } apply plugin: 'com.android.application' repositories { maven { url 'https://maven.fabric.io/public' } } android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.matrix_intech.manabitas" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" multiDexEnabled true ndk { moduleName "webp" } […]