所以我开始使用 Android Studio,我想为我的项目使用一个数字选择器库。特别是这个:
https://github.com/SimonVT/android-numberpicker
这是一个 Maven 项目,我的项目是基于 gradle 的。为了在我的应用程序中使用这个项目,我需要将它转换成一个 gradle 库项目。简单的!或者我是这么想的……
我使用以下文章作为指导:
http://www.androidsx.com/how-to-link-an-android-library-project-with-gradle-in-android-studio/ http://ryanharter.com/blog/2013/07/17/迁移-android-projects-to-gradle/
我的目录结构如下:
android-numberpicker/
- android-numberpicker/
- src/
- main/
- res/
- java/
- build.gradle
- settings.gradle
- build.gradle
我的 settings.gradle 文件
include ':android-numberpicker'
我的 build.gradle 文件:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.7.3'
}
}
apply plugin: 'android-reporting'
/**
* Task to generate a gradle wrapper.
*/
task wrapper(type: Wrapper) {
gradleVersion = '1.9'
}
我的 android-numberpicker/build.gradle 文件看起来像:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.7.3'
}
}
apply plugin: 'android-library'
repositories {
mavenCentral()
}
android {
compileSdkVersion 15
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 15
}
}
现在我什至没有尝试将它与我的项目或 android studio 集成。我只是想看看我是否可以自己构建项目。换句话说,我想看看我是否已将项目移植到正确的 gradle 中。但是,当我运行 ./gradlew build (我正在使用 gradle 包装器)时,会出现一系列错误,例如:
NumberPicker.java:48: error: cannot find symbol
import android.view.accessibility.AccessibilityNodeProvider;
^
不知道为什么 gradle 会这样做?
我确实在原始项目 pom 文件中注意到以下依赖项:
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
我最初忽略了这一点,因为我认为“android-library”插件会自动解析android sdk。但是,当我收到上述错误时,我决定将其添加到我的 android-numberpicker/build.gradle 中,如下所示:
dependencies {
compile "com.google.android:android:+"
}
我使用了编译,因为 android-library 似乎没有将提供的范围识别为有效范围。运行 ./gradlew build 我得到了一个不同的错误:
错误:Debug 间接依赖于 Android API 级别 15,但变体“调试”的 minSdkVersion 是 API 级别 7
同样,不确定我为什么会收到此错误。在这个问题上已经达到了一堵墙。任何帮助将不胜感激。
干杯