Articles of android gradle

如何将build.gradle逻辑拆分为更多.gradle文件?

我有很长的build.gradle文件,它有我想要移动到单独的.gradle文件中的函数以保持逻辑清洁。 文档建议在这种情况下使用外部构建脚本 。 我在build.gradle文件中有下一个函数: android{ buildTypes { debug { signingConfig = loadFromPropertiesFile(“DEBUG_KEY_PROPERTIES”) } } } import com.android.builder.signing.DefaultSigningConfig import com.android.builder.model.SigningConfig SigningConfig loadFromPropertiesFile(keyProperty) { // Load signing config from singning properties file println keyProperty println (“${keyProperty}”) if (project.hasProperty(keyProperty)) { File releasePropsFile = new File(project.property(keyProperty)) println(“Loading config from properties file: ${releasePropsFile}”) if (releasePropsFile.exists()) { Properties releaseProps = new […]

即使使用@SuppressWarnings(“弃用”),Android Studio也会被弃用警告

在Android Studio中,我们在构建期间收到了已弃用的警告。 此代码位于Activity的onCreate(Bundle)中 String databasePath = webView.getContext().getDir(“databases”, Context.MODE_PRIVATE).getPath(); webSettings.setDatabaseEnabled(true); webSettings.setDatabasePath(databasePath); 该方法具有这些注释 @SuppressLint(“SetJavaScriptEnabled”) @SuppressWarnings(“deprecation”) @TargetApi(19) @Override public void onCreate(Bundle savedInstanceState) { 我知道setDatabasePath已被弃用,但我们需要这个以实现向后兼容性。 我以为这会隐藏警告。 当我们执行编译任务时,我会看到一条消息 … / app / src / main / java / com /…/ WebframeActivity.java警告:(106,15)[弃用] WebSettings中的setDatabasePath(String)已被弃用 我认为@SuppressWarnings注释不会将此报告为警告。 我能做什么? 这是一个错误还是我忽略了我的错误?

如何使用不同的插件聚合mutli-project构建的测试报告?

如何迭代每个不同types项目的测试结果并将其收集在一个报告中? 示例项目设置: Root Project | |- Java Project |- test task | |- Android Library Project (has Build Types) |- testDebug task |- testRelease task | |- Android application Project (has Product Flavors and Build Types) |- testFreeDebug task |- testFreeRelease task |- testPaidDebug task |- testPaidRelease task 到目前为止我所拥有的: 这将聚合所有项目的所有测试结果: task aggregateResults(type: Copy) { outputs.upToDateWhen […]

无法安装android支持存储库修订版35

我正在尝试从命令行(Linux)升级我的sdk。 跑完之后 android update sdk –no-ui 我可以在终端上看到包下载和安装消息,但实际上它没有安装。 当我运行android list sdk命令时,请参阅可用于安装的相同软件包,如下所示: 可用于安装或更新的软件包:1 1- Android支持信息库,修订版35 有人可以帮助我,我可能在这里失踪了吗? 注意:我确实尝试了android update sdk –no-ui –filter 1但安装后结果相同。

AAPT错误无休止的gradle建设

我在Ubuntu 16.04 x64上安装了Android Studio。 当开始新项目时,我在setContentView(R.layout.activity_main);得到未解析的’R’ setContentView(R.layout.activity_main); 。 gradle输出也说: Configuration on demand is an incubating feature. Incremental java compilation is an incubating feature. :clean UP-TO-DATE :app:clean :app:preBuild UP-TO-DATE :app:preDebugBuild UP-TO-DATE :app:checkDebugManifest :app:preReleaseBuild UP-TO-DATE :app:prepareComAndroidSupportAnimatedVectorDrawable2400Library :app:prepareComAndroidSupportAppcompatV72400Library :app:prepareComAndroidSupportSupportV42400Library :app:prepareComAndroidSupportSupportVectorDrawable2400Library :app:prepareDebugDependencies :app:compileDebugAidl :app:compileDebugRenderscript :app:generateDebugBuildConfig :app:mergeDebugShaders :app:compileDebugShaders :app:generateDebugAssets :app:mergeDebugAssets :app:generateDebugResValues UP-TO-DATE :app:generateDebugResources :app:mergeDebugResources AAPT err(Facade for 31820177): /home/nllsdfx/Downloads/build-tools/24.0.0/aapt: 5: /home/nllsdfx/Downloads/build-tools/24.0.0/aapt: […]

Android插孔和jill陷入困境

我正在尝试将Jack-Jill和Java8用于我的Android应用程序。 我的笔记本电脑上的一切都很好但是当我试图在CircleCI上运行项目时,它会被困在transformClassesWithPreJackPackagedLibrariesForDebug 这是我的build.gradle apply plugin: ‘com.android.application’ apply plugin: ‘io.fabric’ apply from: ‘test-environment.gradle’ buildscript { repositories { maven { url ‘https://maven.fabric.io/public’ } } dependencies { classpath ‘io.fabric.tools:gradle:1.+’ } } repositories { maven { url ‘https://maven.fabric.io/public’ } maven { url “https://jitpack.io” } mavenCentral() } allprojects { repositories { jcenter() } } android { dexOptions { jumboMode = […]

Google Map Api v2显示找不到本地模块描述符类

今天我在模拟器上开始应用程序后遇到了这个问题,但昨天一切正常,我没有在前一天编辑任何更改。 API密钥在调查后也有效。 我尝试过的事情: 降级com.google.android.gms服务的版本 将所有服务更新到最新版本 重建/清洁项目 无效/重新启动Android Studio 但错误仍然存​​在。 Logcat显示模拟器何时打开应用程序: 09-20 09:49:09.261 25985-25985/com.abc.abc I/c: Token loaded from file. Expires in: 174900321 ms. 09-20 09:49:11.339 25985-26088/com.abc.abc W/DynamiteModule: Local module descriptor class for com.google.android.gms.googlecertificates not found. 09-20 09:49:11.341 25985-26088/com.abc.abc I/DynamiteModule: Considering local module com.google.android.gms.googlecertificates:0 and remote module com.google.android.gms.googlecertificates:1 09-20 09:49:11.341 25985-26088/com.abc.abc I/DynamiteModule: Selected remote version of com.google.android.gms.googlecertificates, […]

当两个依赖项对同一个库具有内部依赖性但在Android中具有不同版本时,gradle如何解决冲突?

我的应用依赖于两个库。 它们都使用相同的库’ org.hamcrest:hamcrest-core ‘,但内部使用不同的版本。 androidTestCompile ‘junit:junit:4.12’ //(Depends on version 1.3) androidTestCompile ‘org.mockito:mockito-core:1.10.19’ //(Depends on version 1.1) 由于这两个依赖项都与Android instrumentation tests相关,因此应用程序构建成功,并在构建中包含更高版本 – 在本例中为1.3版。 但是,如果我将一个库用于主应用程序,而其他库用于Android Instrumentation测试,如下所示: compile ‘junit:junit:4.12’ androidTCompile ‘org.mockito:mockito-core:1.10.19’ 我收到以下错误。 :app:prepareDebugAndroidTestDependencies Conflict with dependency ‘org.hamcrest:hamcrest-core’. Resolved versions for app (1.3) and test app (1.1) differ. See http://g.co/androidstudio/app-test-app-conflict for details. FAILED FAILURE: Build failed with an exception. * […]

如何在Android Studio 2.3.2上解决“无法find所请求目标的有效证书路径”的问题

当我尝试创建空活动项目时,我在Android Studio 2.3.2中遇到以下错误。 当我尝试导入项目时,我也得到了这个。 Error:Cause: unable to find valid certification path to requested target 在这里,我的gradle buildscript { repositories { jcenter() } dependencies { classpath ‘com.android.tools.build:gradle:2.3.2’ // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } task clean(type: Delete) […]

即使没有任何更改,Android多模块Gradle构建速度也很慢

我有一个包含多个模块的Android项目,即使我尝试重建它而不改变任何东西,构建时间也很慢。 其结构类似于: 有更多的“父”(和独立的父兄弟姐妹)和“function”模块,但设置是图片的设置。 我的gradle.properties文件如下: org.gradle.jvmargs=-Xmx4096m -Xms2048m org.gradle.parallel=true org.gradle.daemon=true org.gradle.configureondemand=true 我使用的是Gradle版本3.5和插件版本2.4.0-alpha7。 该项目还使用multidex( javaMaxHeapSize “4g”和jumboMode true ),数据绑定,kotlin和java以及几个注释处理器。 在构建时,我可以看到多个线程在大多数项目中并行运行不同的任务,除了主要用于最终的“app”模块(我认为这是正常的)。 但是很多时间似乎花在了不同的:: compileJavaWithJavac任务上。 即使没有改变任何东西,在具有16 Gb RAM的MacBook Pro i7上构建大约需要30秒。 如果我在function模块的方法中更改了一行代码(甚至没有更改方法的签名),则构建时间超过1:30分钟。 这些正常时期? 有什么我可以进一步优化以改善构建时间吗? 我还检查了一些其他答案: 从这一个 ,设置preDexLibraries = false没有帮助,我已经使用assembleDebug 这里建议的incremental = true不起作用, 不推荐使用 禁用即时运行似乎有所帮助但不多 上面讨论的项目的构建风格已经设置了minSdkVersion 21