Articles of android gradle

Android中每个dex文件的方法限制为64K

我遇到了这个问题java.lang.IllegalArgumentException: method ID not in [0, 0xffff]: 65536 ,我决定从dex文件中排除一些方法。 我的gradle.build: compile ('com.google.android.gms:play-services:+') { exclude group: "com.google.android.gms.analytics" exclude group: "com.google.android.gms.games" exclude group: "com.google.android.gms.plus" exclude group: "com.google.android.gms.drive" exclude group: "com.google.android.gms.ads" } 我认为这段代码是错误的,因为错误method ID not in [0, 0xffff]… 。 如何排除Google Play服务的不必要部分? 我只使用地图和GCM。 更新。 谢谢reVerse。 这是非常有用的代码。 有一个获取方法的脚本(也可以看到现有的软件包的名称) https://gist.github.com/JakeWharton/6002797 ( source ./dex.sh; dex-method-count-by-package test.apk ) 在使用reVerse的答案代码片段之前 Count of methods / […]

AndroidAnnotations找不到符号类

我在Android Studio gradle项目中使用AndroidAnnotations。 我目前在编译期间从AA中得到错误输出: cannot find symbol class MyActivity_ 错误输出并不妨碍构build应用程序 – 它不是一个真正的编译错误,因为类在那里,似乎这只是编译过程中的一个不幸的时机问题。 有什么我可以做的,以避免AA的这些假阳性错误? 每当我编译出现“假”错误时,很容易错过真正的错误。

编译appcompat v7:26. +为融合位置提供者添加播放服务时出错

我有一个问题,并已经看过可能重复的问题和答案,我认为这一个不被其他人回答,所以在这里问。 我更新了我的播放服务,以利用融合位置提供程序,现在我的gradle中的appcompat显示错误。 所以我创build了一个新项目,并检查了新项目上的build.gradle,并且具有完全相同的appcompat,但是我的项目显示错误。 apply plugin: 'com.android.application' android { compileSdkVersion 26 buildToolsVersion "26.0.0" defaultConfig { applicationId "au.com.itmobilesupport.sqltwo" minSdkVersion 17 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile […]

使用不同的VersionCode进行Debug / Release android gradle build

我想申请不同的VersionCode来制作apk文件。 对于debugging只修复它为1 ,并释放defaultConfig中指定的任何数字。 下面的代码给出mypackage-release-1.apk文件为assembleRelease工件,这不是预期的。 我预计mypackage-release-10111.apk 。 为什么debug { defaultConfig.versionCode=1 }会影响assembleRelease工件? defaultConfig { versionCode 10111 versionName '2.5.4' minSdkVersion 10 targetSdkVersion 21 } signingConfigs { debug { project.ext.loadSign = false defaultConfig.versionCode = 1 // Why this value applied to assembleRelease? } release { project.ext.loadSign = true applicationVariants.all { variant -> variant.outputs.each { output -> def file = […]

Android – 使用Dex进行debugging

我的项目工作正常,直到我添加Facebook的依赖。 我已经开始得到这个错误。 我读过很多问题,这个问题似乎与MultiDex有关。 但是,没有任何解决scheme为我工作 Error:Execution failed for task ':app:transformClassesWithDexForDebug'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-7-openjdk-amd64/bin/java'' finished with non-zero exit value 1 即使删除了我所添加的东西,它仍然显示,而且在build设时比平常还要花费很多时间 这是我的build.gradle apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "net.ciblo.spectrodraft" minSdkVersion 15 targetSdkVersion 23 versionCode 1 multiDexEnabled true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' […]

播放服务粒度依赖性错误

我尝试在Google Play Service 6.5中使用新的Granular Dependency 在我的gra子里,我设定了: dependencies { compile 'com.android.support:appcompat-v7:21.0.2' compile 'com.google.maps.android:android-maps-utils:0.3' compile 'com.google.android.gms:play-services-base:6.5.87' compile 'com.google.android.gms:play-services-location:6.5.87' compile 'com.google.android.gms:play-services-maps:6.5.87' } 但我得到这个错误: Error:Execution failed for task ':app:processDebugResources'. Error: more than one library with package name 'com.google.android.gms' You can temporarily disable this error with android.enforceUniquePackageName=false However, this is temporary and will be enforced in 1.0 我已经更新了所有的SDK。 什么是使用这个新function的正确方法? 谢谢。 […]

每次运行Gradle时都会编译应用程序,花费大量时间

在使用Eclipse进行开发的时候,如果我之前已经运行/debugging过一个应用程序,并且没有更改它的源代码,那么再次运行/debugging同一个应用程序是相当快的。 但是,对于Android Studio和Gralde,每当我尝试运行/debugging一个应用程序时,gradle构build将始终运行,并在应用程序启动时添加15〜45秒的延迟时间(有时高达70秒在一台4岁的惠普i7笔记本电脑)。 因此,问题是:有没有办法跳过Android Studio的gradle构build阶段,或者至less减less运行/debugging所花费的时间? 注意:我已经configuration了gradle.properties,如下所示: org.gradle.parallel=true org.gradle.daemon=true org.gradle.configureondemand=true 编辑:我的gradle构build可能比大多数项目更复杂,因为它有7种不同的风格(将扩展到20)和3种构buildtypes,还包含Groovy代码来更改APK名称(插入当前date),并自动插入任务根据当前的buildType增加版本代码和版本名称。 这是完整的build.gradle(修改为隐藏客户名称): import java.text.SimpleDateFormat apply plugin: 'com.android.application' def appendVersionNameVersionCode(applicationVariants) { applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null) { def PREFIX = "My_APP_" if (outputFile.name.endsWith('.apk') && !outputFile.name.startsWith(PREFIX)) { def names = variant.baseName.split("-"); def apkName = PREFIX+names[0]+"_"; if(names[1].equals(android.buildTypes.debugEx.name)) { […]

gradle项目同步失败。 基本function(如编辑,debugging)将无法正常工作在Android Studio 1.0.1

我已经开始使用Android Studio 1.0.1,并且没有任何事情可以做,因为我有这个错误,甚至无法呈现XML。 错误:无法启动守护进程。 这个问题可能是由于守护进程的configuration不正确造成的。 例如,使用无法识别的jvm选项。 有关守护进程的用户指南章节,请参阅http://gradle.org/docs/2.2.1/userguide/gradle_daemon.html 请阅读以下过程输出以了解更多信息: VM初始化期间发生错误无法为对象堆预留足够的空间错误:无法创buildJava虚拟机。 错误:发生致命exception。 程序将会退出。 其他人面临同样的问题?

在Android Studio 1.0.2中使用NDK生成.so文件

我一直在努力获得一个非常简单的NDKSample应用程序,这个应用程序是按照这个步骤构build的。 我的问题是,我不能让Android Studio生成.so文件,所以我没有库。 据我所知,现在NDK支持已经被弃用了,今年年初还会有一个替代scheme,但是目前似乎还没有任何阻止我使用这个function的东西。 当我build立我的项目,我给了以下警告(不是一个错误): 警告[Project::app]当前的NDK支持已被弃用。 将来会提供替代scheme。 我的项目build立,但是当我运行.apk它崩溃(如预期),因为它不能find库/ .so文件。 我们希望这些在项目build成时产生,就像这个例子,这是正确的吗? 这是错误: java.lang.UnsatisfiedLinkError:dalvik.system.PathClassLoader [DexPathList [[zip文件“/data/app/com.example.ndksample-1/base.apk"],nativeLibraryDirectories=[/vendor/lib,/ system / lib] ]]找不到“libMyLib.so” 关于我的环境 Windows 7,Android Studio 1.0.2,ADB运行的是Nexus 5(emulator-5554) 我的代码 按照这个例子: 主要Activity.java package com.example.ndksample; //import android.support.v7.app.ActionBarActivity; // This line is not needed as we are not targetting older devices import android.app.Activity; //Import this app package to use onCreate etc. import […]

在Android Studio中为unit testingconfigurationtesting文件夹

我在我的android studio项目中添加了unit testing的文件夹。 默认文件夹是andoidTest,但是我在testing中添加了一个新文件夹和名称。 ( 如robolectric抽样testing ) 当我添加testing依赖在我的build.gradle模块下如 testCompile("junit:junit:${junitVersion}") testCompile ("org.robolectric:robolectric:${robolectricVersion}") 他们不会被添加到项目下的外部库中,但是当我使用默认configuration并使用androidTestCompile ,它可以添加外部库。 然后我想也许我应该在gradle中设置root用于testing,所以我在build.gradle中使用了android标签中的以下内容: sourceSets { androidTest.setRoot('src/test') } 但仍然存在问题。 我可以使用gradlew运行testing,但是在test文件夹中的类中的导入不适用,也不会出现用于testing目的的外部库。 任何人有任何解决这个问题?