标签: android-gradle-plugin

Android Studio中的Gradle是什么?

Gradle对我和新的Android开发人员都有点困惑.任何人都可以解释Android Studio中的gradle是什么以及它的目的是什么?为什么Gradle包含在Android Studio中?

build-automation gradle android-studio android-gradle-plugin

1257
推荐指数
18
解决办法
41万
查看次数

Android Studio:将jar添加为库?

我正在尝试使用新的Android Studio,但我似乎无法让它正常工作.

我正在使用Gson库来序列化/反序列化JSON对象.但是库不知何故不包含在构建中.

我创建了一个只有MainActivity的新项目.在/ libs文件夹中复制gson-2.2.3.jar并将其添加为库依赖项(右键单击 - >添加为库).这包括android studio中的jar,因此可以从源文件中引用它.

当我尝试运行该项目时,它无法编译,所以我添加:

compile files('libs/gson-2.2.3.jar')
Run Code Online (Sandbox Code Playgroud)

到de .gradle文件中的依赖项.之后它正确编译,但在运行应用程序时,我得到了一个ClassDefNotFoundException.

有谁知道我做错了什么?

android dependency-management gradle gson android-gradle-plugin

1006
推荐指数
21
解决办法
72万
查看次数

是否可以使用Java 8进行Android开发?

在网上搜索,目前尚不清楚Java 8是否支持Android开发.

在我下载/设置Java 8之前,有人可以在任何"官方"文档中指出我说Java 8是否支持Android开发.

java android java-8 android-gradle-plugin

594
推荐指数
12
解决办法
27万
查看次数

compileSdkVersion和targetSdkVersion有什么区别?

我已经看了看文档与摇篮建设,但我仍然不知道什么之间的差异compileSdkVersion,并targetSdkVersion为.

它只是说:

compileSdkVersion属性指定编译目标.

那么,"汇编目标"是什么?

我看到两种可能的解释方式:

  1. compileSdkVersion在构建应用程序所使用的编译器的版本,同时targetSdkVersion"API级别的应用程序的目标".(如果是这种情况,我认为compileSdkVersion必须大于或等于targetSdkVersion
  2. 他们的意思是一样的."编译目标"=="应用程序所针对的API级别"
  3. 别的什么?

我看到之前已经问过这个问题,但是一个答案只引用了文档,这对我来说是不清楚的.

sdk android android-build android-gradle-plugin

495
推荐指数
7
解决办法
19万
查看次数

找不到Gradle DSL方法:'runProguard'

从我上一个项目更新后出现错误.我的代码不是问题,但我在build.gradle时遇到问题.我该如何解决?

build.gradle代码在这里:

apply plugin: 'android'

android {
    compileSdkVersion 21
    buildToolsVersion '20.0.0'

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
    }

    defaultConfig {
        applicationId 'com.xxx.axxx'
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 6
        versionName '1.0'
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19.+'
    compile files('libs/commons-codec-1.8.jar')
    compile files('libs/asmack-android-8-4.0.4.jar')
    compile 'com.android.support:support-v4:21.0.0'
    compile 'com.google.code.gson:gson:2.2.4'
    compile 'com.jakewharton:butterknife:5.1.1'
}
Run Code Online (Sandbox Code Playgroud)

Gradle Sync消息输出: …

android gradle android-gradle-plugin

494
推荐指数
4
解决办法
17万
查看次数

如何使用Gradle创建一个发布签名的apk文件?

我想让我的Gradle构建使用Gradle创建一个发布签名的apk文件.

我不确定代码是否正确或者我在做gradle build什么时缺少参数?

这是我的gradle文件中的一些代码:

android {
    ...
    signingConfigs {
          release {
              storeFile file("release.keystore")
              storePassword "******"
              keyAlias "******"
              keyPassword "******"
         }
     }
}
Run Code Online (Sandbox Code Playgroud)

gradle构建完成SUCCESSFUL,在我的build/apk文件夹中我只看到...-release-unsigned.apk...-debug-unaligned.apk文件.

关于如何解决这个问题的任何建议?

android release gradle apk android-gradle-plugin

493
推荐指数
20
解决办法
24万
查看次数

自动接受所有SDK许可证

自从gradle android插件2.2-alpha4:

Gradle将尝试下载项目所依赖的缺失SDK包

这真是太酷了,并且被认为是一个JakeWharton项目.

但是,要下载SDK库,您需要:接受许可协议或gradle告诉您:

您尚未接受以下SDK组件的许可协议:[Android SDK Build-Tools 24,Android SDK Platform 24].在构建项目之前,您需要接受许可协议并使用Android Studio SDK Manager完成缺少的组件的安装.或者,要了解如何将许可协议从一个工作站转移到另一个工作站,请访问 http://d.android.com/r/studio-ui/export-licenses.html

这是一个问题,因为我喜欢在做一个时安装所有sdk依赖项gradle build.

我正在寻找一种自动接受所有许可证的解决方案.也许是一个gradle脚本?你有什么想法 ?

谢谢!

[编辑]

解决方案是执行:

android update sdk --no-ui --filter build-tools-24.0.0,android-24,extra-android-m2repository
Run Code Online (Sandbox Code Playgroud)

并手动安装,但这是gradle的新功能目的.

[编辑2]

更好的解决方案是使用sdkmananger:

yes | sdkmanager --licenses
Run Code Online (Sandbox Code Playgroud)

sdk android gradle android-sdk-tools android-gradle-plugin

415
推荐指数
25
解决办法
31万
查看次数

是否可以在Gradle中声明一个可用于Java的变量?

是否可以在Gradle中声明一个可用于Java的变量?基本上我想在build.gradle中声明一些变量,然后在构建时获取它(显然).就像C/C++中的预处理器宏一样......

宣言的一个例子就是那样......:

android {
    debug {
        A_VAR_RETRIEVABLE_IN_JAVA = 42
    }
    release {
        A_VAR_RETRIEVABLE_IN_JAVA = 42+52
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法做那样的事情?

java android gradle android-gradle-plugin

392
推荐指数
5
解决办法
13万
查看次数

如何使用新的Gradle Android Build System手动包含外部aar包

我一直在尝试新的Android构建系统,我遇到了一个小问题.我已经编译了自己的ActionBarSherlock的aar包,我称之为'actionbarsherlock.aar'.我正在尝试做的实际上是使用这个aar来构建我的最终APK.如果我使用编译项目(':actionbarsherlock')将整个ActionBarSherlock库作为android-library模块包含到我的主项目中,我可以成功构建而没有任何问题.

但我的问题是,我想将该依赖项作为aar文件包手动提供,如果我想要一个JAR,那么我似乎无法弄清楚如何正确地将它包含到我的项目中.我试图使用编译配置,但这似乎不起作用.我继续在编译期间找不到符号,这告诉我来自aar包的classes.jar没有包含在类路径中.

有谁知道手动将aar包作为文件包含的语法?

的build.gradle

buildscript {

 repositories {
     mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:0.4'
  }
}
apply plugin: 'android'

repositories {
   mavenCentral()
}
dependencies {
    compile files('libs/actionbarsherlock.aar')
}

android {
    compileSdkVersion 15
    buildToolsVersion "17.0"
}
Run Code Online (Sandbox Code Playgroud)

编辑:所以答案是它目前不支持,如果你想跟踪它,这是问题.

编辑:目前仍然没有直接支持,最好的替代方案似乎是来自@RanWakshlak的建议解决方案

编辑:使用@VipulShah提出的语法也更简单

android gradle build.gradle android-gradle-plugin

379
推荐指数
16
解决办法
29万
查看次数

HttpClient不会在Android Studio中导入

我有一个用Android Studio编写的简单类:

package com.mysite.myapp;

import org.apache.http.client.HttpClient;

public class Whatever {
    public void headBangingAgainstTheWallExample () {
        HttpClient client = new DefaultHttpClient();
    }
}
Run Code Online (Sandbox Code Playgroud)

从这里我得到以下编译时错误:

Cannot resolve symbol HttpClient

HttpClient包含在Android Studio SDK中?即使不是,我也将它添加到我的Gradle构建中:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'org.apache.httpcomponents:httpclient:4.5'
}
Run Code Online (Sandbox Code Playgroud)

无论有没有最后一个编译行,错误都是一样的.我错过了什么?

android gradle apache-httpclient-4.x android-gradle-plugin

345
推荐指数
14
解决办法
54万
查看次数