Articles of android build

在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 } } 但是,它在Gradle 4.1 (Android studio 3.0预览版)中不起作用。 它不是像上面的路径那样生成文件夹,而是在旧的debug文件夹中生成上面的路径,如下图所示: 有人有解决方案吗? 谢谢。

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

我正在开发一个简单的演示。 在这个演示中,我只是创建一个简单的自定义警报对话框。 它工作正常。 当我在1.6中构建应用程序时,它向我展示了完美的结果,但是当我将Android版本从1.6更改为2.2时,它显示了意外的结果。 它不显示我显示自定义警报对话框的背景屏幕。 这是我的xml文件。 自定义对话框主题文件 @null @null true true true @android:style/Theme.Dialog 这是我的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 […]

将Gradle与现有的Android项目一起使用

我有一个现有的Android项目,具有以下结构: – ProjectName — AndroidManifest.xml — local.properties — project.properties — assets — libs (containing all jars) — modules (containing all library projects my project depends on) — res — src —- com/namespace/projectname (all my classes including main activity are here) 我没有使用任何特定的构建系统来构建我的项目,而不是默认使用Android Studio IDE提供的项目(尽管该项目最初是使用IntelliJ CE创建的。 我想使用Gradle和android插件,并在我的构建过程中做一些工作。 我已经尝试了几种配置来实现这一点,并且每次都无法完成成功的构建。 在这种情况下推荐的方法是什么? 我应该改变我的项目结构吗? 或者是否可以使用现有结构配置gradle? 任何帮助将不胜感激。 谢谢!

“转换为Dalvik格式失败,错误1” – 仅在导出时

我知道这是一个重复的问题,但我已经阅读并尝试了这个网站上的每个解决方案,我仍然得到错误; 另外,我只是在从Eclipse导出我签名的apk时才得到它。 我能够构建并运行unsigned apk。 我有: 从构建路径中删除(并稍后还原)所有库 清理并重建了我的所有项目 使用-clean选项重新启动Eclipse 从头开始重新创建应用程序项目 我知道错误1意味着我有重复的符号,但我已经检查,清理并重建我的构建路径一百万次,我仍然得到错误, 只有当我导出时 。 如果我有重复的符号,我也不会为我的未签名的apk收到错误1吗? 如果我确实有重复的符号,我怎么能让Eclipse告诉我它们是什么? 我从导出向导得到的只是一行错误对话框。 🙁 我手动签署apk时没有任何错误,但是当我在手机上安装它时,我得到一个简单的错误:“应用程序未安装”。 🙁 🙁 我的项目结构如下: 一个包含99%代码的Android库项目。 它在构建路径中有一个所需的jar文件副本。 一个包含两个类的Android应用程序项目。 它通过Android选项卡引用库项目,而不是Java构建路径。 除了Android 2.1之外,构建路径中没有引用其他源,项目或库。 我甚至从头开始重新创建了这个项目(我没有重新创建库项目,因为它更大)。 几天前一切都在运作! 任何建议都非常感谢! 提前致谢… EDIT-UPDATE:当我禁用Proguard时,错误消失了。 很奇怪。

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

运行assembleDebug时,会调用我依赖的项目的发布相关任务。 例如,我有一个名为’x’的项目,它取决于’y’。 当我gradle assembleDebug它调用y:mergeReleaseProguardFiles,packageReleaseAidl等…等等。

如何在android studio中显示编译错误

我想知道如何在Android Studio中显示编译错误。 我尝试了以下一个: Android Studio:编译器错误输出窗口在哪里? 但它显示另一个错误: javac: invalid target release: 1.8 任何知道实际解决方案的人都请回复。

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

我的应用程序使用旧架构组件。 我想转向新的Android架构组件 。 为此,我在开始时添加了与房间相关的依赖项,之后构建正常。 但是,当我尝试为Lyfecycles,LiveData和ViewModel添加依赖项时,如此处所述。 应用程序构建过程大大减慢,构建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” 此外,我必须启用插孔以实现Java 8兼容性,如下所示: defaultConfig { …….. jackOptions { enabled true } } 添加所有这些组件后,构建过程已大大减慢。 我尝试通过“ Help -> Edit custom VM options为某些参数进行一些自定义VM选项更改 -Xmx5120m 我把它设置为几乎5 GB,但没有任何对我有用。 我相信我的机器有足够的硬件。 (8 GB RAM,Windows 10,1TB HDD,AMD A8) 我的应用程序使用了许多谷歌服务,如Gmail API,Firebase API,其他一些库我用尽了64K参考限制? 但是我已经启用了这里提到的多索引。 是否因为新的架构组件或其他原因而发生了这种情况? 如何使构建过程更快? 更新: 下面的答案之一Budius提出了一个脚本,它将显示每个构建过程所采用的时间,我在我的应用程序中执行它的结果是: BUILD SUCCESSFUL Total time: 18 […]

Eclipse内部的Ant构建失败

多年来,我已经使用Eclipse的Ant集成来构建我的Android项目, 如Google在此文档页面上所述 。 这是我最喜欢的构建发布版本的方法,因为我只需在Eclipse中点击“运行外部工具”即可启动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 建筑失败 C:\ Android \ android-sdk \ tools \ ant \ build.xml:653:执行此行时发生以下错误: C:\ Android \ android-sdk \ tools \ ant \ build.xml:698:null返回:1 我不确定这是什么原因,因为AAPT似乎生成了“crunch”目录本身。 我已经尝试清理我的项目并禁用Eclipse中的自动构建,但无济于事。 我也尝试在Eclipse之外执行ant release ,但这会产生同样的错误。 执行ant clean release也不起作用,因为它试图删除仍在使用Eclipse的jar。 因此,我发现的唯一解决方案是: 退出Eclipse 等待进程结束 执行ant clean release 这是令人难以忍受的,因为正如我们所知,重启Eclipse是一种巨大的痛苦。 […]

在Android Gradle Build中禁用Manifest Merger

我正在使用新的gradle android构建系统。 该项目包括两个android库项目和一个主项目。 使用ant构建,必须在project.properties中启用清单合并。 但是在使用gradle构建系统时,默认情况下会启用清单合并。 如何禁用清单合并?

Android源代码编译错误:“尝试使用java选项增加堆大小’-Xmx ‘”

当我尝试编译Android源代码时出错(Sourcecode-version:6.0.1; RAM:6G;主机系统:ubuntu 14.04),日志如下: including ./system/netd/Android.mk … including ./system/security/keystore-engine/Android.mk … including ./system/security/keystore/Android.mk … including ./system/security/softkeymaster/Android.mk … including ./system/tools/aidl/Android.mk … including ./system/update_engine/Android.mk … including ./system/vold/Android.mk … including ./system/weaved/Android.mk … including ./system/webservd/Android.mk … including ./tools/external/fat32lib/Android.mk … Starting build with ninja ninja: Entering directory `.’ [ 0% 1/21275] Ensure Jack server is installed and started Jack server already installed […]