gpt4 book ai didi

android - 将Android Numberpicker Maven项目转换为Android Studio的Gradle项目

转载 作者:行者123 更新时间:2023-12-03 04:43:44 25 4
gpt4 key购买 nike

因此,我开始使用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/migrating-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集成。我只想看看我是否可以自己构建项目。换句话说,我想看看是否已将项目移植到正确的位置。但是,当我运行./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:+"
}

我使用了compile,因为android-library似乎无法将提供的内容识别为有效范围。在运行./gradlew构建时,出现了另一个错误:

ERROR: Debug has an indirect dependency on Android API level 15, but minSdkVersion for variant 'debug' is API level 7



再次,不是很确定为什么我得到这个错误。关于这个问题已达到一堵墙。任何帮助将不胜感激。

干杯

最佳答案

进行以下所有这些更正,并将您的项目与gradle同步。

1)从build.gradle文件中删除此依赖项

compile "com.google.android:android:+"

2)应用Android插件后从 android-numberpicker / build.gradle 中删除
 repositories {
mavenCentral()
}

不使用它,您已经在root gradle文件中定义了。

3)将android-numberpicker / build.gradle中的 minSdkVersion和compileSdkVersion 更改为 16 ,因为已在API级别16中添加了类

检查此引用
http://developer.android.com/reference/android/view/accessibility/AccessibilityNodeProvider.html

完成所有这些更改后,请使用gradle同步您的项目,如果您遇到任何问题,请通知我。

编辑:

我在NumberPicker库代码中找到了这个:
class SupportAccessibilityNodeProvider {

AccessibilityNodeProviderImpl mProvider;

private SupportAccessibilityNodeProvider() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
mProvider = new AccessibilityNodeProviderImpl();
}
}

public boolean performAction(int virtualViewId, int action, Bundle arguments) {
if (mProvider != null) {
return mProvider.performAction(virtualViewId, action, arguments);
}

return false;
}

public void sendAccessibilityEventForVirtualView(int virtualViewId, int eventType) {
if (mProvider != null) mProvider.sendAccessibilityEventForVirtualView(virtualViewId, eventType);
}
}

该图显示库针对较低版本处理该库,因此您可以将compileSDKVersion设置为16,将minSdkVersion设置为7/8。

还必须在依赖项iside build.gradle文件中使用此功能在项目中添加支持v4库
compile 'com.android.support:support-v4:19.0.0'

关于android - 将Android Numberpicker Maven项目转换为Android Studio的Gradle项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21364706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com