Articles of gradle

如何从所有依赖项中排除模块,但保留显式声明Gradle

我正在努力解决这个问题, 我在我的Android应用程序的build.gradle文件中声明了一些依赖项,但问题是很多这些依赖项使用相同的compat库,在我的例子中是appcompat-v7 。 可以为每个依赖项排除此库 compile (‘com.github……’){ exclude group: ‘com.android.support’, module: ‘appcompat-v7’ } 但我需要为每个依赖项执行此操作 另一种方法是使用这种expression方式 configurations { compile.exclude module: ‘appcompat-v7’ } 这有效,但即使明确声明这个库,也会忽略compile ‘com.android.support:appcompat-v7:+’ 我需要的只是为整个应用程序只包含一次这个库,因为如果编译没有排除它将显示很多错误,如has been already defined 。 也许有一种更简单的方法来实现这一目标。 感谢任何帮助,我将不胜感激。

从Gradle依赖项中排除.class文件

我正在尝试使用gradle导入https://github.com/Kickflip/kickflip-android-sdk到我的android构建中,我得到: 意外的顶级exception:com.android.dex.DexException:多个dex文件定义Lorg / apache / commons / codec / binary / Base64; Commons.codec是我的项目的依赖项,但不是直接翻转项目,我认为它来自其中一个jar子。 如果我打开Kickflip的classes.jar,我可以看到.class文件。 如何将Base64.class从kickflip导入到最终构建中? 我已经看过使用ziptree来排除东西,但却无法获得任何工作。 谢谢 我的build.gradle是: apply plugin: ‘android’ android { compileSdkVersion 19 buildToolsVersion “19.0.3” defaultConfig { minSdkVersion 10 targetSdkVersion 19 versionCode 1 versionName “1.0” } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.txt’ } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 […]

使用Gradle构建引发MalformedJsonException

每当我尝试使用Gradle构建项目时,我都会收到此错误 :app:mergeDebugResources FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ‘:app:mergeDebugResources’. > Error: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.RuntimeException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 * Try: Run with –info or –debug option to get more log output. * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task […]

Gradle始终从最后一个flavor中的buildType获取值

在我工作的公司,我们在内部和外部项目中使用了很多口味。 还有2或3种构建types(dev,prod和qa),有时我们需要更改flavor中特定buildType的特定variables。 这是问题出现的地方,当我有更多的味道时,Groovy总是采用最后一个buildType的配置。 例: 首先,我定义了新的buildTypes: android { … buildTypes { development { initWith debug } production { initWith release } } … } 然后我用特定的buildType更改定义flavor: productFlavors { mcDonalds { … buildTypes { development { manifestPlaceholders = [onesignal_app_id : “4b77f560-26f3-420d-b438-d7aeb9912d4d”, onesignal_google_project_number: “REMOTE”] } production { manifestPlaceholders = [onesignal_app_id : “6b77f560-26f3-420d-b438-d7aeb9912d33”, onesignal_google_project_number: “REMOTE”] } } } burgerKing { […]

使用已弃用的API时,Android Studio无法编译

我在Android Studio上编译和运行应用程序时遇到问题。 问题:我不喜欢我使用弃用的API。 (来自gradlew compileDebug –stacktrace 。 这里有完整的 gradlew compileDebug –stacktrace Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. 的背景: 我正在使用PreferenceActivity,它使用onPreferenceTreeClick和addPreferencesFromResource(int) ,这两种方法都是不推荐使用的方法。 我正在使用ABS和ViewPager库,它们似乎也在其代码中使用了弃用的方法。 问题: 可以将运行配置编辑到一个扩展位置, 尽管已弃用的API,它仍可以成功编译吗? 可以更改/编辑/修改哪些内容以允许构建成功编译? 鉴于我计划支持pre-ICS设备和使用已弃用的APIS,不应该提出问题。 编辑 因此,命令提示符下的编译器表明构建成功,问题直接从Android Studio运行,构建过程失败: FAILURE: Build failed with an exception. 问题似乎是我不知道如何解决的问题,流行的是: UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: 这发生在三个不同的地方: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoStubImpl; Landroid/support/v4/app/ActivityCompatHoneycomb; […]

如何在Android Studio项目中包含库模块依赖项?

我正在将项目从Eclipse迁移到AndroidStudio。 我在这个项目中有一个用作lib的项目。 这个lib叫做PullToRefresh。 我已经尝试了很多方法将这个项目导入AS,但我尝试的任何方法都有效。 在我的项目中,我有这个文件夹结构: Project Root +– app | +– builds | +– libs | | +– PullToRefresh (my lib project) | +– src | | +– main (java code and resources) 在build.gradle中,我试过这样做: dependencies { compile project(“:libs:PullToRefresh”) } 但我收到此错误消息: Gradle ‘my_project’ project refresh failed: Project with path ‘:libs:PullToRefresh’ could not be found in project […]

无法在反应原生项目中扩展Zip

我已经在StackOverflow上看到了与此类似的其他问题,但我觉得这个错误一直在popup,并且没有一个解决方案真的对我持续。 我刚刚将我们的项目从React Native版本0.34.1升级到0.42.2(执行整个react-native-upgrade过程),所以我不知道这是否是导致所有这些痛苦的原因,但我一直都是这样做的错误: * What went wrong: Execution failed for task ‘:react-native-awesome-card-io:prepareComFacebookFbuiTextlayoutbuilderTextlayoutbuilder100Library’. > Could not expand ZIP ‘/Users/taylorking/.gradle/caches/modules-2/files-2.1/com.facebook.fbui.textlayoutbuilder/textlayoutbuilder/1.0.0/29bc8e5a1e2b33944b88277652ee83092ae1dbc0/textlayoutbuilder-1.0.0.aar’. 它有时会发生在那个包本身react-native-awesome-card-io ,但它可能发生在项目所包含的任何软件包上。 有时我只是继续运行react-native run-android ,它最终会自行解决,但它开始让我疯狂。 我只是为那个特定的文件做了一些窥探,我想检查我的权限,它显示: -rw-r–r– 1 taylorking staff 18074 Mar 16 09:41 textlayoutbuilder-1.0.0.aar 我只是不确定这是不是问题? 我对gradle不太熟悉,但至少大多数关于这个问题的post都以某种forms或方式处理。 我愿意分享任何其他有助于一劳永逸地解决这个问题的信息。 对不起,如果这似乎是重复,但似乎没有其他任何东西在这里永久解决。 更新: 我只是尝试删除该包,希望它能解决我的问题,它只是转到下一个包有相同的错误: * What went wrong: Execution failed for task ‘:react-native-camera:prepareComFacebookFrescoDrawee081Library’. > Could not expand ZIP ‘/Users/taylorking/.gradle/caches/modules-2/files-2.1/com.facebook.fresco/drawee/0.8.1/a944015ddf50fdad79302e42a85a351633c24472/drawee-0.8.1.aar’. 更新2: […]

Android Studio非常缓慢而且迟钝

Android Studio非常缓慢。 这不仅仅是Gradle构建时间(我已经看到在取消前达到40多分钟),它是整个IDE,当AS打开时我的整个计算机变慢。 当我点击AS中的任何地方时,无论是在代码或菜单项内还是其他内容,都需要几秒钟的时间来响应。 我卸载了Eclipse,因为它太多了。 AS不像马车一样,但它太慢了。 这是我到目前为止所尝试的: 确保我没有处于演示模式 尝试将Compile independent modules in parallel打勾并且未选中 – 两者都很慢 将vmoptions更改为-Xmx2048m -XX:MaxPermSize = 1024 勾选自动生成项目 勾选使用过程中的建筑物 按需点击配置 在Gradle中勾选离线工作 在命令行选项中添加了–offline 在“忽略文件和文件夹”(编辑器 – >文件types)中添加了Thumbs.db 将org.gradle.jvmargs = -Xmx2048m,org.gradle.daemon = true和org.gradle.parallel = true添加到gradle.properties 确保我只添加了我需要的Google Play服务库 这些解决方案都没有帮助,我该如何解决这个问题呢? 如果它只是我上面尝试过的东西,请不要链接post。

android studio不下载源代码和javadoc

使用安卓工作室版本0.1.3和Android gradle插件版本0.4.2。 我注意到它没有为我的任何依赖项提供源代码。 我之前在eclipse上使用了第三方android插件,并且通常使用maven你也可以配置它来做到这一点。 任何人都知道如何启用android插件或android工作室来获取工件的源和javadoc? 我遇到的另一个问题是我为这样的提供范围创建了一个配置 configurations { provided } android.applicationVariants.each { variant -> variant.javaCompile.classpath += configurations.provided } 哪个在gradle中完美运行,但android studio不会将其添加到其类路径中。 任何人都知道怎么解决这个问题? 我试过像这样的想法gradle插件 idea { module { downloadJavadoc = true downloadSources = true scopes.PROVIDED.plus += configurations.provided } } 但是在尝试修改范围时没有java插件它不起作用。 另外,下载javadoc和源代码的设置也不起作用 我真的很失望android工作室和新的gradle构建系统如何组合在一起,真的想切换但是按照这个速度它只是不现实

Android – App在Pre-Lollipop设备上崩溃

我的应用程序在Lollipop设备上运行良好,但它在版本Lollipop之前一直在崩溃。 我只是通过谷歌文档在我的应用程序中使用以下代码实现了横幅添加 // Request for Ads AdRequest adRequest = new AdRequest.Builder() // Add a test device to show Test Ads .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .build(); // Load ads into Banner Ads mAdView.loadAd(adRequest); 运用 compileSdkVersion 23 buildToolsVersion “23.0.1” 表现 错误 E/AndroidRuntime: FATAL EXCEPTION: main E/AndroidRuntime: Process: com.app.aggro, PID: 13257 E/AndroidRuntime: java.lang.VerifyError: com/google/android/gms/measurement/internal/zzv E/AndroidRuntime: at com.google.android.gms.measurement.AppMeasurementContentProvider .onCreate(Unknown Source) E/AndroidRuntime: at […]