Articles of gradle

Gradle:添加依赖项的优点/缺点

在build.gradle添加依赖项的一些优点/缺点是build.gradle ,而不是将它们添加为依赖库? dependencies { compile project(‘:library’) … compile ‘com.stackoverflow.android:some-great-library:1.0’ … } 在开发Android项目的过程中,我经常遇到一些很棒的库,它们都是我一直在寻找的精确解决方案。 但是,正如我所需要的只是这些特定库所提供的内容的一小部分,我担心如果将它们添加为Gradle dependencies是一种过度杀伤力 。 根据@ CommonsWare的评论,我有更具体的问题。 是否添加依赖项: 以明显的速度减慢编译时间? 增加release-apk和debug-apk的大小,增加依赖的大小?

如何配置dagger + gradle

我有一个项目并迁移到gradle依赖,但我发现自己有一个问题,试图用gradle设置dagger,我第一次编译它工作完美(或者如果我清理)但如果我尝试两次然后它给我错误像: 错误:(13,14)错误:重复类:com.myapp.android.application.InjectingApplication $ InjectingApplicationModule $$ ModuleAdapter 我尝试使用android-apt插件并在文档中配置,但我仍然得到相同的错误( https://bitbucket.org/hvisser/android-apt/overview ) 我也尝试使用提供的依赖,就像在本教程( https://github.com/frankdu/android-gradle-dagger-tutorial )中编译但到目前为止没有运气。 你有任何想法如何配置匕首和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 […]

Android Studio:如何删除/过滤构建变体以进行默认调试和发布buildTypes,并仅保留使用自定义buildTypes的变体?

我创建了自定义buildTypes,如下所示: buildTypes { releasefree.initWith(buildTypes.release) releasefree { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } releasepro.initWith(buildTypes.release) releasepro { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ applicationIdSuffix “.pro” } debugfree.initWith(buildTypes.debug) debugfree { shrinkResources true applicationIdSuffix “.debug” debuggable true } debugpro.initWith(buildTypes.debug) debugpro { shrinkResources true applicationIdSuffix “.pro.debug” debuggable true } } 我不打算使用默认的调试和发布版本types,并希望从构建变体列表中删除它们。 我有几种口味,变种列表太大了。 使用默认的调试和发布types删除变体将有所帮助,因为我永远不会使用它们。 我尝试使用变体filter如下,但它不起作用 android.variantFilter { variant […]

Gradle构建工具找不到play-services-tasks.aar? 为什么?

今天突然,当我试图在Android工作室中运行我的应用程序时出现错误。 它是: Error: Could not find play-services-tasks.aar (com.google.android.gms:play-services-tasks:15.0.1). Searched in the following locations: https://jcenter.bintray.com/com/google/android/gms/play-services-tasks/15.0.1/play-services-tasks-15.0.1.aar 我没有更改gradle文件中的任何内容,但突然出现了。 我的上一个版本在几分钟前成功执行。 为什么它找不到play-services-tasks.aar这是com.google.android.gms的一部分:play-services-tasks:15.0.1 采取的步骤: 我检查了我是否在gradle文件中包含了所有存储库,到目前为止所有存储库都是正确的。 为什么这个错误会突然发生? 我还将此链接https://jcenter.bintray.com/com/google/android/gms/play-services-tasks/15.0.1/play-services-tasks-15.0.1.aar复制到浏览器中,但它正在运行很好,就是我得到了“文件下载”对话框。 我的Gradle文件 应用级别 apply plugin: ‘com.android.application’ android { compileSdkVersion 26 buildToolsVersion “26.0.2” defaultConfig { applicationId “mekanic24assistantapplication.heba.mekanic24.com.mekanic24assistantapplication” minSdkVersion 14 targetSdkVersion 26 versionCode 13 versionName “2.1” testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner” multiDexEnabled true } buildTypes { release { minifyEnabled false […]

无法解决:com.google.android.gms:使用gradle在IntelliJ Idea中播放服务

我正在尝试在IntelliJ Idea中为我的libGDX项目添加Google Play服务。 我已按照此处的设置指南进行操作: https : //developers.google.com/android/guides/setup 这看起来非常简单。 我刚刚在相应的部分中将这些行添加到我的build.gradle中,所以现在看起来像: project(“:android”) { apply plugin: “android” apply plugin: ‘com.android.application’ configurations { natives } dependencies { compile project(“:core”) compile “com.badlogicgames.gdx:gdx-backend-android:$gdxVersion” natives “com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi” natives “com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a” natives “com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a” natives “com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86” natives “com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64” compile “com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion” natives “com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi” natives “com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a” natives “com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86” compile “com.badlogicgames.gdx:gdx-freetype:$gdxVersion” natives “com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi” natives “com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a” natives “com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a” natives “com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86” […]

致命exception:java.lang.NoClassDefFoundError:android.support.v7.appcompat.R $ layout

我刚从日食迁移到工作室。 我跟着一个博客将项目从eclipse导出到工作室。 该应用程序在棒棒糖中正常工作,并在棒棒糖前设备中抛出以下错误。 仅在工作室中获取此错误。 不是在日蚀。 FATAL EXCEPTION: main java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$layout at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:324) at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:246) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) at com.hsp.inventory.SplashActivity.onCreate(SplashActivity.java:53) at android.app.Activity.performCreate(Activity.java:5122) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270) // …… // 我的gradle文件 // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() mavenCentral() maven { url “http://dl.bintray.com/journeyapps/maven” } } dependencies […]

在KitKat上使用Android L Material Design

阅读Android L开发者预览版的兼容性部分( http://developer.android.com/preview/material/compatibility.html )我已经看到我可以使用L-sdk创建一个APP,并且还可以运行它较旧的sdk(如KitKat)。 我已经使用Android L sdk创建了一个新项目并配置了“build.gradle”,如本文所述: Android Studio:失败[INSTALL_FAILED_OLDER_SDK] 。 我尝试了两种配置: 提出的问题给了我这个错误: pkg: /data/local/tmp/com.example.{my user name}.materialapp Failure [INSTALL_FAILED_OLDER_SDK] 而在答案中提出的那个给我错误 我在StackOverflow上搜索了其他问题,但我找不到任何解决方案。 解决方案:Android L 预览材质样式仅可用于运行Android L的设备。“兼容性”仅为预览,未启用。

ClassCastException:NoClassDefFoundError无法强制转换为RuntimeException

我正在努力将我的代码库升级到Gradle 2.2和Android Studio 1.0。 我目前正试图让Robolectric 2.4工作,但是当我尝试运行unit testing时,我遇到了一个奇怪的问题。 只有在gradle clean后才会出现问题; 多次运行测试套件将产生通过测试(如预期的那样)。 当我在干净后运行测试时,我收到以下错误: java.lang.ClassCastException: java.lang.NoClassDefFoundError cannot be cast to java.lang.RuntimeException 我已经将错误追溯到此调用: Activity activity = Robolectric.setupActivity(MainActivity.class); 我是否使用Robolectric gradle插件( org.robolectric:robolectric-gradle-plugin:0.14.0 )或JC和K Androidunit testing插件( com.github.jcandksolutions.gradle:android-unit-test:2.1.1 )。 我在Robolectric Github上发现了这个问题,但它看起来还没有得到解决: https : //github.com/robolectric/robolectric/issues/1385 这个问题也在android studiounit testing插件中引用,在’Trouble Shooting’下: https : //github.com/evant/android-studio-unit-test-plugin 我目前的示例代码在这里: https : //github.com/KioKrofovitch/robolectric-upgrade-test 我已经能够在Robolectric样本上运行api-android-16项目而不会看到这个问题,尽管api-android-19和api-android-21项目由于其他原因而失败。 我看不出他们做了什么不同的事情,这样他们就不会失败。 https://github.com/robolectric/robolectric-samples 有人find了解决方法吗? 对Jenkins或Travis等CI工具进行两次运行测试并不是一个好的解决方法。 编辑:嵌入代码示例 我的顶级build.gradle,我添加了JC和K Unit测试库: […]

具有捆绑依赖性的库(fat aar)

我们建立了一个我们分发给客户的图书馆。 我们分发原始的aar文件供他们使用。 我们还使用GitHub的原始访问API来提供Maven存储库。 现在为了保持整洁,我们将库分成几个模块: include ‘:library’ include ‘:geohash’ include ‘:networkstate’ include ‘:okvolley’ include ‘:volley’ library是一个Android库,所以是volley和okvolley以及networkstate 。 现在当我发布library ,依赖树看起来像这样: \— com.sensorberg.sdk:sensorberg-sdk:0.10.0-SNAPSHOT +— com.squareup.okhttp:okhttp-urlconnection:2.2.0 | \— com.squareup.okhttp:okhttp:2.2.0 | \— com.squareup.okio:okio:1.2.0 +— com.google.code.gson:gson:2.3.1 +— android-sdk:okvolley:unspecified | +— com.squareup.okhttp:okhttp-urlconnection:2.2.0 (*) | +— com.google.code.gson:gson:2.3.1 | +— android-near-gradle:volley:unspecified | \— com.squareup.okhttp:okhttp:2.2.0 (*) +— android-sdk:networkstate:unspecified +— com.squareup.okhttp:okhttp:2.2.0 (*) +— android-sdk:volley:unspecified \— com.loopj.android:android-async-http:1.4.5 […]

Google Play“原生平台”显示了commons-io-2.4.jar

我刚刚遇到一个非常奇怪的问题,我的应用程序的构建,通过Google Play的测试版渠道分发,拒绝部署到任何设备。 谷歌的一些调查和一些帮助表明问题是这样的,当深入了解Google Play控制台中的APK详情时: 有什么可能导致这种情况? 这是我在build.gradle中指定依赖build.gradle : compile ‘org.apache.directory.studio:org.apache.commons.io:2.4’ APK就是这样构建的: gradle clean gradle assembleMarketRelease market是其中一种产品口味。 该应用程序安装并在侧载时运行正常。 我通过删除该依赖项来解决该问题,并自行重新实现缺少的function,现在正在按预期部署应用程序。 但我想了解潜在的问题。 我是否错误地指定了依赖项? 我做错了吗? 相关 : Google Play开发者控制台在上传的Apk的“原生平台”部分中显示DS_Store