标签: android-build

Android用于发布和调试版本的单独字符串值

每次我发布我的应用程序时,我都会将所有的url字符串和一些从测试更改为生产.我这样做的方法就是在发布之前注释掉测试字符串.有没有更好的方法来处理基于构建类型的字符串?

android gradle android-build android-build-flavors

18
推荐指数
2
解决办法
9861
查看次数

Android Gradle:重命名/禁用默认构建类型

可以以某种方式重命名预定义的构建类型吗?

我们使用一些自定义构建类型来表示我们的内部登台设置(DEV/TEST/LIVE),并且不需要构建buildTypes(发布/调试).这些可以在调用时以某种方式被重命名或禁用assemble吗?

android gradle android-build android-gradle-plugin

17
推荐指数
1
解决办法
2192
查看次数

如何隐藏Android sdkmanager下载进度条?

当我运行一个sdkmanager命令sdkmanager "build-tools;26.0.1"时,由于下载进度条,它会在Jenkins控制台中吐出数百行.有没有办法隐藏它或将其置于安静模式?

我没有在sdkmanager --help输出中看到一个选项.我正在考虑将输出管道输送到/dev/null.

android android-build jenkins android-sdk-tools android-sdk-manager

17
推荐指数
2
解决办法
569
查看次数

在Android Gradle Build中禁用Manifest Merger

我正在使用新的gradle android构建系统.

该项目包括两个android库项目和一个主项目.

使用ant构建,必须在project.properties中启用清单合并.但是在使用gradle构建系统时,默认情况下会启用清单合并.我怎样才能禁用清单合并?

android gradle android-build

16
推荐指数
3
解决办法
1万
查看次数

Android gradle build:运行assembleDebug会调用项目依赖项的发布任务

运行assembleDebug时,会调用我依赖的项目的发布相关任务.

例如,我有一个名为'x'的项目,它取决于'y'.

当我gradle assembleDebug调用y:mergeReleaseProguardFiles,packageReleaseAidl等...等等.

android gradle android-build android-gradle-plugin

16
推荐指数
1
解决办法
2100
查看次数

Eclipse内部的Ant构建失败

多年来,我一直使用Eclipse的Ant集成来构建我的Android项目,如Google在此文档页面上所述.这是我最喜欢的构建发布版本的方法,因为我可以在Eclipse中点击"Run external tool"来启动Ant构建,并在后台运行.

从最近(我相信ADT 22.0或22.1),我一直遇到以下失败:

[echo] Handling Resources...
[aapt] Generating resource IDs...
[aapt] invalid resource directory name: C:\path\to\project\bin\res/crunch
Run Code Online (Sandbox Code Playgroud)

BUILD FAILED
C:\ Android\android-sdk\tools\ant\build.xml:653:执行此行时发生以下错误:
C:\ Android\android-sdk\tools\ant\build.xml:698:null返回:1

我不确定这是什么原因,因为AAPT似乎生成了"crunch"目录本身.我已经尝试清理我的项目并禁用Eclipse中的自动构建但无济于事.

我也试过ant release在Eclipse之外执行,但这会产生同样的错误.执行ant clean release也不起作用,因为它试图删除仍在使用Eclipse的jar.因此,我发现的唯一解决方案是:

  1. 退出Eclipse
  2. 等待该过程结束
  3. 执行 ant clean release

这是令人难以忍受的,因为正如我们所知,重启Eclipse是一种巨大的痛苦.此外,所有受影响的项目都需要清理,这使整个过程需要半个小时.我在b.android.com上打开了#60496号问题,但没有听到任何官方回复.

除了咬紧牙关并切换到Android Studio之外,还有什么解决方案吗?

ant android android-build

16
推荐指数
1
解决办法
6938
查看次数

添加新库后,Android studio构建速度变慢了吗?

我的应用程序使用旧架构组件.我想转向新的Android架构组件.

为此,我在开始时添加了与房间相关的依赖项,之后构建正常.

但是,当我尝试添加了Lyfecycles,LiveData和视图模型的依赖,提到这里.

应用程序构建过程大大减慢,构建apk需要5分钟和更长的时间.

在app的build.gradle中添加了以下dependecies:

    compile "android.arch.lifecycle:runtime:1.0.0-alpha5"
    compile "android.arch.lifecycle:extensions:1.0.0-alpha5"
    annotationProcessor "android.arch.lifecycle:compiler:1.0.0-alpha5"
Run Code Online (Sandbox Code Playgroud)

此外,我必须启用插孔以实现Java 8兼容性,如下所示:

defaultConfig {
........
        jackOptions {
            enabled true
        }
    }
Run Code Online (Sandbox Code Playgroud)

添加所有这些组件后,构建过程已大大减慢.我尝试通过转到某些参数来进行一些自定义VM选项更改Help -> Edit custom VM options

-Xmx5120m
Run Code Online (Sandbox Code Playgroud)

我把它设置为几乎5 GB,但对我来说没有任何作用.我相信我的机器有足够的硬件.(8 GB RAM,Windows 10,1TB HDD,AMD A8)

我的应用程序使用了许多谷歌服务,如Gmail API,Firebase API,其他一些库我用尽了64K参考限制?但是我已经启用了这里提到的多索引.

这是因为新的架构组件还是其他原因而发生的?如何使构建过程更快?

更新:

下面的答案之一Budius提出了一个脚本,它将显示每个构建过程所采用的时间,我在我的应用程序中执行它的结果是:

BUILD SUCCESSFUL

Total time: 18 mins 28.44 secs
Task timings:
    480ms  :app:mergeDebugResources
   2516ms  :app:processDebugResources
 487725ms  :app:transformClassesWithPreJackPackagedLibrariesForDebug
  29213ms  :app:transformClassesWithPreJackRuntimeLibrariesForDebug
    752ms  :app:transformResourcesWithMergeJavaResForDebug
 556894ms  :app:transformJackWithJackForDebug
   5184ms  :app:transformNativeLibsWithMergeJniLibsForDebug
  17524ms  :app:packageDebug
Run Code Online (Sandbox Code Playgroud)

大多数时间都是杰克.

我尝试了下面的答案由Bryan …

android gradle android-build android-gradle-plugin

16
推荐指数
2
解决办法
2240
查看次数

在Gradle 4.1中更改apk输出文件夹

我想改变APK output folder,这就是我以前做的事情:

applicationVariants.all { variant ->
    variant.outputs.all {
        def filePath = "${rootProject.rootDir.absolutePath}/apks/${variant.name}"
        println("My Path: " + filePath)
        outputFileName = filePath
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,它无效Gradle 4.1(Android studio 3.0预览版).它不是像上面的路径一样生成文件夹,而是在旧debug文件夹中生成上面的路径,如下图所示:

在此输入图像描述

有人有解决方案吗?谢谢.

android gradle android-build build.gradle android-gradle-plugin

16
推荐指数
3
解决办法
1万
查看次数

更改构建版本后,Android自定义警报对话框显示错误

我正在开发一个简单的演示.在这个演示中,我只是创建一个简单的自定义警报对话框.它工作正常.

当我在1.6中构建应用程序时,它向我展示了完美的结果,但是当我将Android版本从1.6更改为2.2时,它显示了意外的结果.它不显示我显示自定义警报对话框的背景屏幕.

这是我的xml文件. 自定义对话框主题文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CustomDialogTheme" parent="@android:style/AlertDialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:backgroundDimEnabled">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowAnimationStyle">@android:style/Theme.Dialog</item>
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

这是我的CustomConfirmOkDialog类

package com.utility.org;

import android.app.Activity;
import android.app.Dialog;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

    public class CustomConfirmOkDialog extends Dialog implements OnClickListener
    {
        private Button okButton = null;
        private TextView infoText=null,confirmBody=null;
        private int errorMessage=0;
        @SuppressWarnings("unused")
        private Activity activity;

        public CustomConfirmOkDialog(Activity context,int customdialogtheme,int errorMessage) 
        {
            super(context,customdialogtheme);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.confirm_ok);
            this.errorMessage = errorMessage;
            this.activity = context; …
Run Code Online (Sandbox Code Playgroud)

android android-version android-build android-alertdialog

15
推荐指数
1
解决办法
5241
查看次数

Android Studio:参数“目录”不是目录

当我尝试构建我的项目时,我遇到了这样一个错误:

FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:dataBindingGenBaseClassesDebug'.
> Parameter 'directory' is not a directory
Run Code Online (Sandbox Code Playgroud)

android android-build android-studio build.gradle android-gradle-plugin

15
推荐指数
1
解决办法
5712
查看次数