Articles of android gradle

在Android Gradle构build中,如何从包含的jar文件中排除依赖关系?

在我的Android项目中,我使用了一个来自jar的库。 我将它包含在依赖部分中,如下所示: dependencies { … compile files('libs/thethirdpartylibrary.jar') … } 我也想使用okhttp库,我这样包含: compile ('com.squareup.okhttp:okhttp:2.7.5') (这个okhttp的特定版本取决于okio 1.6.0。) 问题是第三方的jar库取决于okio v0.9.0,更糟糕的是,它捆绑。 因此,我在构build时遇到了dex冲突错误。 我能够通过手动删除jar文件中的okio来解决这个问题,这似乎工作。 但我想知道是否有办法在gradle中做到这一点。 我的问题:我可以删除捆绑,传递(< – 我希望我正在使用这个单词正确的方式)依赖关系从一个包括的jar在编译时与gradle?

我们如何在Android库模块中inheritancetesting类?

我有一个Android Studio项目,有两个库模块: foo-module和bar-module 。 每个实现一个库, foo-module bar-module根据foo-module定义一个策略接口和bar-module ,并实现这样一个策略。 foo-module使用stub策略实现来testing其核心代码( foo-module/src/androidTest/ ),并且bar-module应该有它自己的testingtesting。 我在foo-module/src/androidTest/中定义了一个AbstractTests类,它完成了大部分的实际testing。 我还在foo-module/src/androidTest/中有一个StubTests类,它扩展了AbstractTests并实现了必要的abstract方法来完成testing用例(提供策略的实现等)。 这一切都很好。 在bar-module/src/androidTest/ ,我创build了一个BarStrategyTests类,用于镜像StubTests ,但提供了在bar-module实现的策略。 然而, BarStrategyTests无法看到AbstractTests ,即使我在我的build.gradle文件中compile project(':foo-module') ,而bar-module的主要(非testing)类可以正常工作,testing) foo-module类。 IOW,而project()依赖处理常规代码,而不处理androidTest/ code。 我得到“错误:包com.commonsware.foo.test不存在”。 我也尝试添加androidTestCompile project(':foo-module') ,结果相同。 在模块之间共享仪器testing代码的方法是什么? 暂时我可以克隆AbstractTests ,但这不是一个很好的长期解决scheme。 这个问题涵盖了普通Java的相似之处。 有没有人试过一个答案的选项,并得到他们为Android仪器testing工作? 第一个选项(把普通的testing代码作为普通的非testing代码移动到另一个模块中)似乎是合理的,但是我不知道其他两个是否可以用com.android.library插件而不是java插件。

在Android Studio中使用Gradle是强制的吗?

自从官方发布以来,我正在使用android studio。 到目前为止,我使用的是Android Studio版本2.1.2,我需要等待几个小时才能第一次导入项目,并让Gradle同步。 有些人build议在离线模式下运行android studio,但是当我想使用外部库时,我需要使我的项目同步,所以我必须启用gradle。 有没有办法可以摆脱Gradle? 举个例子: 4:19:03 PM Executing tasks: [:app:clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:prepareDebugUnitTestDependencies, :app:mockableAndroidJar, :app:assembleDebug] 现在已经是四点半了,还在跑马圈上! 只需要在Eclipse中按F11并在20秒内debugging应用程序。

不同的库/import取决于构buildtypes

在Android应用程序中,我需要为特定的外设使用特定的SDK。 一切工作正常与一个单一的构build变种: provided fileTree(include: ['peripheral.jar'], dir: 'libs') compile fileTree(exclude: ['peripheral.jar'], dir: 'libs') 问题在于SDK依赖于实际外设中安装的共享库。 如果我尝试在其他Android设备上安装应用程序(用于其他function的debugging), INSTALL_FAILED_MISSING_SHARED_LIBRARY收到INSTALL_FAILED_MISSING_SHARED_LIBRARY错误。 我想我可以使用两个构build变体: release ,使用SDK debug ,那不使用SDK 我已经尝试在release构buildtypes中包括SDK: releaseProvided fileTree(include: ['peripheral.jar'], dir: 'libs') releaseCompile fileTree(exclude: ['peripheral.jar'], dir: 'libs') 但是,由于缺lessimport,我无法编译这个项目。 所以我重复使用这些导入的唯一类: 在main/java/package/PeripheralManager.java : public class ScannerManager { // fake } 在release/java/package/PeripheralManager.java : import peripheral; <- IT FAILS WHEN COMPILING public class ScannerManager { […]

isMinifyEnabled()已弃用。 有什么select?

我使用下面的代码,根据产品的风味,显然自动生成职业防护贴图文件。 buildTypes { release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' applicationVariants.all { variant -> if (variant.getBuildType().isMinifyEnabled()) { variant.assemble.doLast { copy { from variant.mappingFile into "${rootDir}/proguardTools" rename { String fileName -> "mapping-${variant.name}.txt" } } } } } } } 在将android studio升级到3.0之后,它显示一个警告isMinifyEnabled()已过时,我无法find任何解决scheme或此isMinifyEnabled()的替代scheme。 任何帮助提前谢谢?

9修补图像防止生成项目android studio

我正在转向Gradle构build。 但我有很多9贴片图像的这个错误。 请注意,绘制是由http://android-holo-colors.com自动生成的,但是它们是旧的。 我正在使用android studio 0.5.1和我的构build工具版本是19.0.3这是错误 Error:Execution failed for task ':app:mergeDebugResources'. > Error: Failed to run command: /Applications/Android Studio.app/sdk/build-tools/19.0.3/aapt s -i /Users/Ed/Desktop/TestAndroid/app/src/main/res/drawable-mdpi/spinner_default_holo_dark.9.png -o /Users/Ed/Desktop/TestAndroid/app/build/res/all/debug/drawable-mdpi/spinner_default_holo_dark.9.png Error Code: 42 Output: ERROR: 9-patch image /Users/Ed/Desktop/TestAndroid/app/src/main/res/drawable-mdpi/spinner_default_holo_dark.9.png malformed. Frame pixels must be either solid or transparent (not intermediate alphas). Found at pixel #3 along top edge. /Users/Ed/Desktop/TestAndroid/app/src/main/res/drawable-hdpi/cab_background_bottom_test.9.png Error:Ticks in transparent […]

Proguard减慢了android构build过程

启用ProGuard后,我的Android应用程序构build过程需要3分钟以上。 为了加快速度,我可以做些什么基本的事情?

为什么我在将Google翻译客户端库添加到Android项目时遇到此错误?

我正在尝试按照这些说明将Google Translate客户端库添加到我的Android项目中,这会告诉我将此行添加到我的库项目的build.gradle中的依赖项(这是我的应用程序项目的依赖项): compile group: 'com.google.cloud', name: 'google-cloud-translate', version: '0.4.0' 但是当我这样做,我得到这个错误: Error:Execution failed for task ':typeSmart:transformResourcesWithMergeJavaResForDebug'. > com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE File1: C:\Users\Barry\.gradle\caches\modules-2\files-2.1\com.google.auto.value\auto-value\1.1\f6951c141ea3e89c0f8b01da16834880a1ebf162\auto-value-1.1.jar File2: C:\Users\Barry\.gradle\caches\modules-2\files-2.1\org.codehaus.jackson\jackson-core-asl\1.9.11\e32303ef8bd18a5c9272780d49b81c95e05ddf43\jackson-core-asl-1.9.11.jar File3: C:\Users\Barry\.gradle\caches\modules-2\files-2.1\com.google.inject\guice\4.0\f990a43d3725781b6db7cd0acf0a8b62dfd1649\guice-4.0.jar 我明白这个错误在技术上意味着什么,而不是为什么在这种情况下出现。 我试图通过添加一个packagingOptions块到我的build.gradle每个这个答案 (和其他人),但它没有帮助(加上它是非法的)。 Google似乎不太可能发布内部不一致的API。 这个问题可能是特定于我的环境的。 我的应用程序包含一个库模块,其中包含我的大部分代码。 这是应用程序模块的依赖。 我怀疑这跟它有关系。 我正在使用:Gradle 2.14.1; Android Studio 2.2.2; 构build工具25.0.0。 您是否已成功将Google翻译客户端库添加到您的Android项目中? 如果是这样,怎么样? 提前致谢…

如何在build.gradle中包含多个存储库?

Android Studio不会让我build立这个。 它说com.mixpanel.blahblahblah没有find。 com.mixpanel.blahblahblah来自mavenCentral()我知道问题是因为它不承认mavenCentral(),因为它只承认其他回购。 我怎样才能包括这两个项目,并使这个项目工作? apply plugin: 'com.android.application' apply plugin: 'crashlytics' buildscript { repositories { maven { url 'http://download.crashlytics.com/maven' } } dependencies { classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+' } } repositories { maven { url 'http://download.crashlytics.com/maven' } mavenCentral() } android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "co.dilmile.dilmile" minSdkVersion 9 targetSdkVersion 21 versionCode 1 versionName "1.0" } […]

Android Studio:检查自定义构buildtypes

我试图让一段代码检测一个BuildType,但我有点卡住了。 每当我为IF语句input代码时,就会这样说 不兼容的types。 必需:布尔值。 find:java.lang.String 当我想如果在最后有.toString()时它必须是一个string。 我的代码检测它是: String buildtype = BuildConfig.BUILD_TYPE.toString(); if (buildtype = "admin") { //Do some admin stuff here. } 我已经在我的build.gradle文件中设置了pipe理员BuildType,如下所示: admin { debuggable true jniDebuggable false renderscriptDebuggable false minifyEnabled false zipAlignEnabled true } 任何帮助是极大的赞赏。 谢谢