Articles of gradle

使用Gradle在分离的dex文件中拆分外部库来解决Android Dalvik 64k方法的限制

有没有一个proper/easy方法来解决使用Gradle的64k方法的限制? 我的意思是一些自定义的Gradle任务使用pre-dex的jar子创build分离的dex文件,而不是一个单一的classes.dex 。 谢谢 伊万 当前状态 目前,我正在努力与GMS:它带来20K方法使用分析。 我使用Proguard去掉什么是不需要的,但仍然… 72k方法和计数… 我可以使用dx参数–multi-dex分割两个文件中的classes.dex 。 我实现了它手动编辑 sdk/build-tools/android-4.4W/dx 并像这样编辑最后一行: exec java $javaOpts -jar "$jarpath" –multi-dex "$@" 我的APK文件现在包含__classes.dex__ and __classes2.dex__ 。 我试图用几个方法dynamic加载第二个文件: Dexdex 链接 德克斯特链接 二级dex gradle 链接 不幸的是还是没有运气 我真的希望有一些Google / Facebook / Square的专家可以提供一个合适的解决scheme。

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

我有两个产品口味为我的应用程序: productFlavors { europe { buildConfigField("Boolean", "BEACON_ENABLED", "false") } usa { buildConfigField("Boolean", "BEACON_ENABLED", "true") } } 现在我想在任务内获取当前的味道名称(我在Android Studio中select哪一个),以更改path: task copyJar(type: Copy) { from('build/intermediates/bundles/' + FLAVOR_NAME + '/release/') 我如何才能在Gradle中获得FLAVOR_NAME? 谢谢

将字节码转换为dex时出错:原因:java.lang.RuntimeException:exceptionparsing类 – Android Studio 2.0 beta 6

我使用gradle更新到Android studio 2.0 Beta 6的最新版本: dependencies { classpath 'com.android.tools.build:gradle:2.0.0-beta6' } 该应用程序在模拟器和设备上工作得很好,我testing了每一件事情,它工作正常。 我只有在尝试生成已签名的APK时才收到很多错误, 我在依赖关系中遇到了一些错误,当我排除vectordrawable,vectoranimationdrawable和Support-v4库 现在我没有任何依赖关系的错误。 现在我的app模块gradle.build看起来像这样: apply plugin: 'com.android.application' android { configurations { //all*.exclude group: 'com.android.support', module: 'support-v4' all*.exclude module: 'animated-vector-drawable' all*.exclude module: 'support-vector-drawable' //all*.exclude module: 'support-v4' } repositories { maven { url "https://jitpack.io" } } compileSdkVersion 23 buildToolsVersion '23.0.2' defaultConfig { applicationId "com.test.test" minSdkVersion 11 […]

Android:跳过Gradle“testClasses”任务的依赖项目

我遵循本指南在Android Studio v1.4中为我的主要Android模块(我们称之为“module-a”)创build一个JUnittesting文件。 我的“模块.aar ”依赖于作为.aar文件提供的外部库,为此我必须创build一个专用模块。 这种依赖性会导致一个错误: 当右键单击testingJava文件并点击“Run MyTestName”时,失败并出现此错误 Error:Gradle: FAILURE: Build failed with an exception. * What went wrong: Task 'testClasses' not found in project ':module-b'. 删除对模块-B的依赖解决了这个问题。 模块的摘录 – 一个build.gradle: compile project(':module-b') module -b build.gradle: configurations.create("default") artifacts.add("default", file('library-b.aar')) 我应该如何configurationGradle,使其不尝试在“module-b”上运行testClasses任务? (这应该解决我的问题)

Android Studio 1.0的构build速度太慢

我已经从0.9x将Android Studio更新到1.0 RC(1和2),我的项目生成时间从20秒过渡到90秒。 任何人都有同样的问题? UPDATE 在terminal上运行相同的任务,我发现“解决依赖性”步骤占用了大部分额外的时间。 更新2 感谢@bond,我注意到脱机会使构build时间缩短到30秒左右,所以我试图在build.gradle上使用mavenLocal(),但是也没有运气。 顶级build.gradle: // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { mavenLocal() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.0.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects […]

从Android Studio中的应用中删除Google Play服务

我正在研究Android Studio中的一个示例应用程序,并且我不小心将Google Play服务添加到了我的一个活动中。 我甚至不知道我是如何做到的,但它添加了几个自动生成的方法,variables和导入。 我删除了所有这些,并继续在应用程序上工作。 现在,几天后,我发现了 compile 'com.google.android.gms:play-services-appindexing:8.1.0' 在我的app/build.gradle脚本和我的清单文件中自动生成的块: <!– ATTENTION: This was auto-generated to add Google Play services to your project for App Indexing. See https://g.co/AppIndexing/AndroidStudio for more information. –> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 在<application>标签下。 当我删除它们并构build项目时,清单中将重新生成<meta-data>标记,这会导致构build失败,因为我已经删除了build.gradle中的依赖项。 如何从应用程序中完全删除Google Play服务并构build系统来停止此操作? 我错过了什么?

Gradle:FAILURE:无法确定要执行的任务

升级到Android Studio 0.2.0,并得到以下错误 。 应用build议的解决scheme后错误得到解决,但现在出现以下错误。 Gradle: FAILURE: Could not determine which tasks to execute. * What went wrong: Task 'assemble' not found in root project 'MerlinCheckProject'. * Try: Run gradle tasks to get a list of available tasks. 我不知道如何解决这个错误。 感谢帮助。

如何configuration匕首+ gradle

我有一个项目,并迁移到gradle依赖,但我发现自己的一个问题试图设置匕首与gradle,我第一次编译它的工作完美(或如果我清理),但如果我尝试了两次,这让我错误: 错误:(13,14)错误:重复类:com.myapp.android.application.InjectingApplication $ InjectingApplicationModule $$ ModuleAdapter 我尝试使用android-apt插件,并在文档中configuration,但我仍然得到相同的错误( https://bitbucket.org/hvisser/android-apt/overview ) 我也尝试使用提供的依赖,而不像本教程( https://github.com/frankdu/android-gradle-dagger-tutorial )编译,但没有运气。 你有什么想法如何configuration匕首和gradle? 编辑 我的build.gradle看起来像这样 apply plugin: 'android' apply plugin: 'android-apt' android { compileSdkVersion 19 buildToolsVersion "19.0.2" defaultConfig { minSdkVersion 9 targetSdkVersion 19 packageName "com.myapp.android" } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } dependencies { compile project(':volley') apt 'com.squareup.dagger:dagger-compiler:1.2.0' compile […]

使用gradle添加支持库v7,v13不起作用

我试图导入两个Android支持库。 我试图将GoogleMaps AP2实现到我的Android应用程序中。 所以我需要两个库。 我正在使用AndroidStudio和Gradle。 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) apt "org.androidannotations:androidannotations:$AAVersion" compile "org.androidannotations:androidannotations-api:$AAVersion" compile 'com.android.support:appcompat-v7:21.0.+' // compile 'com.google.android.gms:play-services:6.1.+' compile "com.android.support:support-v13:18.0.+" compile "com.loopj.android:android-async-http:1.4.5" repositories { mavenCentral() } compile "com.github.chrisbanes.actionbarpulltorefresh:library:+" compile 'joda-time:joda-time:2.5' } 错误是: Module version com.android.support:support-v13:18.0.0 depends on libraries but is not a library itself

在Jenkins中执行testing时,使用“unknown-sdk”设备

Jenkins在尝试运行testing时遇到了一个奇怪的情况。 作业的configuration明确指定在特定avd上运行testing:“ hudson_en-US_160_HVGA_android-18_armeabi-v7a ”,但由于某些奇怪的原因,在构build过程中,find了2个设备。 其中一个是前一个,另一个叫做“ unknown-sdk ”。 testing在特定的avd上成功执行,并在“unknown-sdk”上失败: 日志的相关部分: [SR.runTests]在2个设备上执行检测套件。 [SR.runTests] [emulator-8215]开始执行。 [SR.runTests] [localhost:8216]开始执行。 运行仪器-w -r -e class com.smoke.tests.LoginTest com.muume.dev.test / android.support.test.runner.AndroidJUnitRunner on unknown-sdk-localhost:8216 2015-06-17 11:54:05 [SDR.printStream] [localhost:8216] STDOUT 11:54:05 I / InstrumentationResultParser:test run failed:'Unable to find instrumentation info for:ComponentInfo {com.muume.dev。testing/ android.support.test.runner.AndroidJUnitRunner} 正如你所看到的,它检测到2个设备: emulator-8215是已知的avd,而localhost-8216是未知的,并导致问题。 我的问题是如何限制testing运行只有一个单一的模拟器,从“unknown-sdk-localhost”来自哪里。