Articles of android gradle

如何在构buildandroid gradle项目时通过proguard禁用dump.txt的生成

我有一个Android项目与gradle构build。 它与proguard混淆。 Proguard生成具有70 MB的dump.txt文件。 我不想要。 我不需要它。 它吸收我的SSD。 侯我可以禁用dump.txt文件生成?

Android Studio – 无法生成项目 – GradleConnectionException

我在Android Studio 0.3.2上。 由于我从以前的版本升级,无法build立现有的项目。 我一直有gradle集成问题。 我花了更多的时间来梳理Gradle,而不是编写任何代码。 我已经被困了一个星期了! 我在这么多的post中提到了错误,但在阅读了几个小时后,没有任何解决scheme为我工作。 org.gradle.tooling.GradleConnectionException:无法使用Gradle安装'C:\ Users \ Adrian.gradle \ wrapper \ dists \ gradle-1.8-all \ 2kopnp0i5dq014k75fp36m3vd5 \ gradle-1.8'执行构build:无法使用Gradle安装执行构build'C:\用户\ Adrian.gradle \包装\ dists目录\ gradle这个-1.8-所有\ 2kopnp0i5dq014k75fp36m3vd5 \ gradle这个-1.8'。 我使用android studio中的内置terminal窗口检查了我的gradle版本。 我的gradle.xml <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="GradleSettings"> <option name="linkedExternalProjectsSettings"> <GradleProjectSettings> <option name="distributionType" value="DEFAULT_WRAPPED" /> <option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="useAutoImport" value="true" /> </GradleProjectSettings> […]

使用connectedInstrumentTest构buildAndroid作业不能在Jenkins上工作

我configuration了Jenkins构build来构buildgradle项目并对其运行testing(使用connectedInstrumentTest),但在启动后几秒内构build失败。 堆栈跟踪: com.android.ddmlib.InstallException at com.android.ddmlib.Device.installPackage(Device.java:884)at com.android.builder.testing.ConnectedDevice.installPackage(ConnectedDevice.java:78)at com.android.builder。在java.util.concurrent.FutureTask.run(FutureTask.java:com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:40))处的internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:97) (java.util.concurrent.Executors)$ RunnableAdapter.call(Executors.java:471)at java.util.concurrent.FutureTask.run(FutureTask.java:262)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor .java:1145)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)at java.lang.Thread.run(Thread.java:744)引起的:com.android.ddmlib.TimeoutException at com.android.ddmlib.AdbHelper.read(AdbHelper.java:686)at com.android.ddmlib.SyncService.doPushFile(SyncService.java:695)at com.android.ddmlib.SyncService.pushFile(SyncService.java :380)at com.android.ddmlib.Device.syncPackageToDevice(Device.java:906)at com.android.ddmlib.Device.installPackage(Device.java:875)… 9 more com.android.builder.testing.ConnectedDevice> runTests [sdk – 4.4.2] [31mFAILED [0m com.android.builder.testing.api.DeviceException:com.android.ddmlib.InstallException at com.android.builder.testing.ConnectedDevice.installPackage(ConnectedDevice.java:81) null com.android.builder.testing.api.DeviceException:com.android.ddmlib.InstallException at com.android.builder.testing.ConnectedDevice.installPackage(ConnectedDevice.java:81)at com.android.builder.internal.testing。 SimpleTestCallable.call(SimpleTestCallable.java:97)at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:40)at java.util.concurrent.FutureTask.run(FutureTask.java:262)at java .util.concurrent.Executors $ RunnableAdapter.call(Executors.java:471)at java.util.concurrent.FutureTask.run(FutureTask.java:262)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145 )在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)在java.lang.Thread.run(Thread.java:744)引起:com.android.ddmlib.InstallException在com.android。 ddmlib.Device.installPackage(Device.java:884)at com.android.builder.testing.ConnectedDevice.installPackage(ConnectedDevice.java:78)… 8 […]

用Appium和Gradle进行Androidtesting

我最近开始考虑用Appium做一些functiontesting。 我想通过gradle通过Android工作室运行Appiumtesting。 有没有人试图做到这一点,如果是的话,你可以给我一些关于设置的信息,如使用什么gradle任务等。 我已经在我的构build文件中包含了必要的依赖关系: androidTestCompile( 'io.appium:Java的客户机:2.0.0') 我有一个下面的示例testing,我只需要通过gradle运行它的方式:) package com.appium.trial; import junit.framework.Assert; import io.appium.java_client.AppiumDriver; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.remote.DesiredCapabilities; import java.net.MalformedURLException; import java.net.URL; import java.util.concurrent.TimeUnit; public class TrialTest { private static WebDriver wd; @Before public void setUp() { DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("appium-version", "1.0"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability("platformVersion", "4.4"); […]

AndroidStudio:在gradle中添加虚拟文件夹

我使用build.gradle文件在我的应用程序的资源文件夹中收集计算机上的多个文件夹: sourceSets { main { assets.srcDirs = ['../someFolder/', 'src/main/assets'] } } 这导致我的资产文件夹具有someFolder文件和“原始”资产文件夹: //The "physical" folders ../someFolder |- file1.txt |- file2.txt |- file3.txt src/main/assets |- asset1.txt //…become this: assets |- file1.txt |- file2.txt |- file3.txt |- asset1.txt 如何redirectgradle中的path,以便我的资产文件夹包含来自someFolder所有文件的“someFolder”文件someFolder ,例如: assets |- someFolder |— file1.txt |— file2.txt |— file3.txt |- asset1.txt

Android AAR包为本地库

我正在寻找一种方法将本地库打包到AAR包中,所以可以通过gradle脚本中的依赖声明来使用它。 通过本地库,我的意思是一组.cpp文件或编译静态库和一组头文件。 所以,我的意思是应用程序本身将从本地代码调用库,而不是从Java调用。 换句话说,库需要编译应用程序的本机代码。 这样就可以轻松pipe理本机代码的依赖关系。 这甚至有可能吗? 到目前为止,我只能find很多关于如何使用.so文件和它的Java接口来创buildJNI本地库的AAR的问题/例子,所以lib只是一个具有本地实现的Java库,但这不是我所需要的。

Gradle(android实验性插件)忽略项目依赖关系

我在下面的项目结构中使用Gradle Android实验性插件: Root Project |– app |– my-library settings.gradle include ':my-library', ':app' 的build.gradle buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle-experimental:0.2.0' } } allprojects { repositories { jcenter() } } 应用程序/的build.gradle apply plugin: 'com.android.model.application' model { android { compileSdkVersion = 23 buildToolsVersion = "23.0.0" defaultConfig.with { applicationId = "a.bundle.id" minSdkVersion.apiLevel = 15 targetSdkVersion.apiLevel […]

如何使用Android Gradle Plugin 3.0.0+来操作变体输出?

Gradle Android插件的最新版本(3.0.0)已经打破了它的操作variables输出的 API。 这个API用于处理在构build过程中创build的文件(比如AndroidManifest.xml),并且已经被删除以改进configuration时间。 什么新的API可用于操作变体输出,它们与2.X API有什么不同?

切换到Gradle:为什么我必须保持自定义视图被混淆?

我正在把一个项目从ant移到Gradle,但是有一些我无法弄清楚。 FACTS 在构build发布APK(即混淆)后,我注意到应用程序崩溃严重 。 这个错误可以概括为: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.AttributeSet] 一个debugging(即非模糊)的APK工作得很好,所以我猜它必须做我的ProGuard / DexGuardconfiguration。 我试图通过添加以下语句来保持类的引用: -keep class com.mypackage.MyCustomView 结果, 释放APK工作得很好 。 然后我做了一些研究,并尝试了更具体的ProGuard / DexGuardconfiguration: -keep public class * extends android.view.View { public <init>(android.content.Context); public <init>(android.content.Context, android.util.AttributeSet); public <init>(android.content.Context, android.util.AttributeSet, int); public void set*(…); } -keepclasseswithmembers class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembers class * […]

ConsumerProguardFiles与ProguardFiles

我试图build立一个应用程序,其中包含一个库模块La与proguard,我注意到,图书馆没有被混淆。 试图理解为什么。 在这个时候,这是我的buildType: release { minifyEnabled false useProguard true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } 经过一些search,我遇到了ConsumerProguardFiles函数,其中指出: ProGuard规则文件包含在已发布的AAR中。 这些proguard规则文件将被任何使用AAR的应用程序项目使用(如果启用了ProGuard)。 这允许AAR指定收缩或模糊排除规则。 这只对Library项目有效。 这在应用程序项目中被忽略。 现在,我的库La的buildType如下: release { minifyEnabled false useProguard true consumerProguardFiles 'proguard-rules.pro' } 而现在我的图书馆La正在使用它的proguard规则和库代码被混淆。 所以我的问题是: 1)这种不同行为的原因是什么? 为什么没有ProguardFiles混淆图书馆编程规则,而是忽略它? 2)我猜测,ConsumerProguardFiles所做的是将图书馆的规则与主要的应用程序proguard规则合并。 这个假设是正确的吗? 3)简而言之:为应用程序使用proguardFiles,为库使用ConsumerProguardFiles。 正确? 谢谢你的阅读时间!