Gradle对我和新的Android开发人员都有点困惑.任何人都可以解释Android Studio中的gradle是什么以及它的目的是什么?为什么Gradle包含在Android Studio中?
build-automation gradle android-studio android-gradle-plugin
我正在尝试使用新的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
在更新到Android Studio 3.0并创建一个新项目后,我注意到build.gradle
有一种新方法可以添加新的依赖项,而不是compile
存在implementation
而不是testCompile
存在testImplementation
.
例:
implementation 'com.android.support:appcompat-v7:25.0.0'
testImplementation 'junit:junit:4.12'
Run Code Online (Sandbox Code Playgroud)
代替
compile 'com.android.support:appcompat-v7:25.0.0'
testCompile 'junit:junit:4.12'
Run Code Online (Sandbox Code Playgroud)
它们之间有什么区别,我应该使用什么?
dependency-management gradle transitive-dependency build.gradle gradle-plugin
我一直用Eclipse编程Android,并决定开始迁移到Android Studio.我决定使用我已经用于Eclipse的相同SDK,然后:
几秒钟后,Gradle完成构建,并在文件Teste4\app\build\intermediates/explosion-aar\com.android.support\appcompat-v7\23.0.0\res\values中抛出以下消息,从而引发了两个错误-v23 \价值观v23.xml:
错误:(2)检索项目的父项时出错:找不到与给定名称"android:TextAppearance.Material.Widget.Button.Inverse"匹配的资源.
错误:(2)检索项目的父项时出错:找不到与给定名称"android:Widget.Material.Button.Colored"匹配的资源.
在文件 - >项目结构 - >模块:应用程序(左列) - >属性选项卡下,我设置了以下版本:
我该怎么做才能解决这个问题?
我已经尝试过Stack Overflow问题appcompat-v7:21.0.0中的建议:找不到与给定名称匹配的资源:attr'android:actionModeShareDrawable',但它不起作用.
我想在gradle build
不执行单元测试的情况下执行.我试过了:
$ gradle -Dskip.tests build
Run Code Online (Sandbox Code Playgroud)
这似乎没有做任何事情.我可以使用其他命令吗?
所以我试图将我的本地.jar文件依赖项添加到我的build.gradle文件中:
apply plugin: 'java'
sourceSets {
main {
java {
srcDir 'src/model'
}
}
}
dependencies {
runtime files('libs/mnist-tools.jar', 'libs/gson-2.2.4.jar')
runtime fileTree(dir: 'libs', include: '*.jar')
}
Run Code Online (Sandbox Code Playgroud)
你可以看到我在这里将.jar文件添加到referencedLibraries文件夹中:https://github.com/WalnutiQ/wAlnut/tree/version-2.3.1/referencedLibraries
但问题是当我运行命令时:在命令行上运行gradle我得到以下错误:
error: package com.google.gson does not exist
import com.google.gson.Gson;
Run Code Online (Sandbox Code Playgroud)
这是我的整个回购:https://github.com/WalnutiQ/wAlnut/tree/version-2.3.1
java dependency-management gradle gradle-eclipse build.gradle
从我上一个项目更新后出现错误.我的代码不是问题,但我在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消息输出: …
我想让我的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
文件.
关于如何解决这个问题的任何建议?
是否有可能使用gradle来生成依赖于什么的树?
我有一个项目,并希望找出所有的依赖项,所以我可以通过前向声明等来修剪它.