Articles of android gradle

build.gradle中的新applicationId如何工作?

谷歌发布了Android Gradle插件的0.11版本。 发行说明包含以下内容: 0.11中用户可见的更改之一是我们已经弃用了packageName和packageNameSuffix设置,并将它们重命名为applicationId和applicationIdSuffix。 这样做的目的是清楚地表明这个应用程序id与清单中的包声明分离,特别是R类和BuildConfig类,以及应用程序中的所有实现类,可以自由地重命名和重构; 你只需要保持applicationId相同。 如果您打开build.gradle文件,lint会突出显示这些已弃用的调用并提供更新它们的快速修正: 这到底是什么意思。 如何将构建脚本中的packagename与清单中的packagename分离?

如何在build.gradle中获取资源值?

resValue方法(或其任何名称)允许您在buildTypes或productFlavors 设置资源值。 是否有相应的方法来获取 resValue设置的资源值? 看来productFlavors在buildTypes之前被评估,因此在resValue设置的buildTypes优先。 我想在调试版本中将“Debug”附加到应用程序名称,但是我需要获取在产品flavor中设置的值以便附加到它。 编辑:我尝试使用MarcinKoziński建议使用variables,但所有产品口味都在任何构建types之前进行评估。 因此,这不起作用: android { String appName = “” productFlavors { Foo { appName = “Foo” } Bar { appName = “Bar” } } buildTypes { release { resValue “string”, “app_name”, appName } debug { resValue “string”, “app_name”, appName + ” Debug” } } } 在buildTypes , appName始终具有上一个产品flavor的值。 因此,在此示例中,所有构建都接收名称”Bar”或”Bar Debug” […]

Android Studio 1.0.2新项目 – 无法解析符号’ActionBarActivity’

我很困惑。 今天我刚刚重新安装了Android Studio版本1.0.2(以及Android SDK),因为我在创建新项目时遇到了一些问题。 我希望我可以通过重新安装所有东西来解决它们,但实际上问题仍然存在,我不知道如何解决它。 在Android Studio中创建一个新项目并切换到我的MainActivity后(我没有更改其中一个文件中的任何内容),我总是会在文件中显示以下错误。 MainActivity.class: package com.android.testapplication; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, […]

Android Gradle build:重命名apk

如何调整build.gradle以更改apk的最终基本名称? (不更改默认后缀)

如何使用这种格式的gradle更改apk名称?

当我使用gradle构建应用程序时,我想将“app-release.apk”文件名更改为以下内容。 [格式] (包名的appname)_V(版本代码)_(yyMMdd)_(R | T) [说明] (包名称的appname):example)com.example.myApp – > myApp (版本代码):构建版本代码2.2.3 – > 223 (yyMMdd):建造日期2015.11.18 – > 151118 (R | T):如果app是release,“R”但是debug是“T”。 如果我在发布中生成一个apk文件,结果是:myApp_V223_151118_R.apk。 如何在gradle中创建这样的文件名?

无法为org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandlertypes的对象获取未知属性’compile’

我正准备添加谷歌地图活动,我的android工作室显示此错误 错误:错误:第(25)行无法为org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandlertypes的对象获取未知属性’compile’。 这是我的解析项目Gradle文件 apply plugin: ‘com.android.application’android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { applicationId “com.parse.starter” minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 versionName “1.0” } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } dependencies { compile ‘com.android.support:appcompat-v7:23.4.0’ compile ‘com.parse.bolts:bolts-tasks:1.3.0’ compile ‘com.parse:parse-android:1.13.0’ compile ‘com.google.android.gms“:play-services:9.2.1’ } 这是我的项目gradle文件 buildscript { repositories { mavenCentral() } dependencies { […]

任务’:app:packageDebug’的执行失败 – 无法读取zip文件

我的代码没有任何变化,当我尝试运行我的应用程序时突然出现此错误: 出了什么问题:任务’:app:packageDebug’执行失败。 com.android.builder.packaging.PackagerException:java.io.IOException:无法读取zip文件’C:\ Users \ Eliran \ AndroidStudioProjects \ Forum \ app \ build \ outputs \ apk \ app-debug.apk’。 我不知道为什么它试图将apk作为zip文件读取。 如果我重新启动Android Studio,我可以运行应用程序一次,然后再次发生。

Android studio – 无法完成gradle执行 – 打开zip文件时出错

我是android开发和android studio IDE的新手。 我从bitbucket检出了一个项目,当我尝试编译它时,我收到以下错误: 无法完成Gradle执行 原因:打开zip文件时出错。 我的gradle-wrapper.properties如下: distributionBase = GRADLE_USER_HOME distributionPath =包装/ dists中 zipStoreBase = GRADLE_USER_HOME zipStorePath =包装/ dists中 distributionUrl = HTTP \://services.gradle.org/distributions/gradle-1.11-all.zip 我无法从此获取太多信息,但完整日志指出: 2014-05-23 14:06:28,950 [32077] WARN – nal.AbstractExternalSystemTask – 原因:打开zip文件时出错com.intellij.openapi.externalSystem.model.ExternalSystemException:原因:在org.jetbrains打开zip文件时出错。在org.jetbrains.plugins.gradle的org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.java:116)上的plugins.gradle.service.project.GradleExecutionHelper.execute(GradleExecutionHelper.java:206)。 com.intellij.openapi.externalSystem.service.remote上的com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl $ 1.produce(RemoteExternalSystemProjectResolverImpl.java:41)中的service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.java:64) .RemoteExternalSystemProjectResolverImpl $ 1.produce(RemoteExternalSystemProjectResolverImpl.java:37)at com.intellij.openapi.externalSystem.service.remote.AbstractRemoteExternalSystemService.execute(AbstractRemoteExternalSystemService.jav) a:59)com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl.resolveProjectInfo(RemoteExternalSystemProjectResolverImpl.java:37)at com.intellij.openapi.externalSystem.service.remote.wrapper.ExternalSystemProjectResolverWrapper.resolveProjectInfo(ExternalSystemProjectResolverWrapper.java: 49)at com.intellij.openapi.externalSystem.service.internal.ExternalSystemResolveProjectTask.doExecute(ExternalSystemResolveProjectTask.java:48)at com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:137)at com .intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:123)位于com.intellij.openapi的com.intellij.openapi.externalSystem.util.ExternalSystemUtil $ 3.execute(ExternalSystemUtil.java:467)。 externalSystem.util.ExternalSystemUtil $ 4 $ 2.run(ExternalSystemUtil.java:546)at com.intellij.openapi.progress.impl.ProgressManagerImpl $ […]

无法在com.android.build.gradle.internal.api.ApplicationVariantImpl上find属性’processManifest’

我目前正在尝试将Android Studio更新为1.0.0-RC。 这似乎需要gradle Android插件1.0.0-rc1。 更新后,我开始出现以下错误: `Could not find property ‘processManifest’ on com.android.build.gradle.internal.api.ApplicationVariantImpl_Decorated@b9da89c.` 通过一些挖掘,似乎processManifest是在0.14.3版本中删除的已弃用属性之一。 知道新的属性名称是什么? 相同的用户指南尚未针对新版本进行更新,因此我找不到任何相关文档。 编辑:这是需要该属性的代码。 我用它将一些构建时值注入清单: applicationVariants.all { variant -> variant.processManifest << { def manifestOutFile = variant.processManifest.manifestOutputFile def newFileContents = manifestOutFile.getText('UTF-8') .replace("{GOOGLE_MAPS_KEY}", variant.buildType.ext.google_maps_key) manifestOutFile.write(newFileContents, 'UTF-8') } }

Android测试构建错误:多个dex文件定义了Landroid / support / test / BuildConfig

我正在尝试将Espresso 2添加到我的项目中(它还有很多其他依赖项),但是在尝试运行测试时我遇到了这个错误: UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Landroid/support/test/BuildConfig; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535) … 非测试版本工作正常。 有没有人有关于调试此方法的最佳方法的任何提示? 我试过运行./gradlew -q ::dependencies ,但我看不出任何明显的问题(虽然我对解释它的输出./gradlew -q ::dependencies ): androidTestCompile – Classpath for compiling the androidTest sources. +— com.squareup.spoon:spoon-client:1.1.2 +— com.google.dexmaker:dexmaker-mockito:1.0 | +— com.google.dexmaker:dexmaker:1.0 | \— org.mockito:mockito-core:1.9.5 | +— org.hamcrest:hamcrest-core:1.1 | \— org.objenesis:objenesis:1.0 +— com.google.dexmaker:dexmaker:1.0 +— org.mockito:mockito-core:1.9.5 […]