【问题标题】:Android Studio - Module NumericPageIndicator nested dependenciesAndroid Studio - 模块 NumericPageIndicator 嵌套依赖项
【发布时间】:2013-12-08 16:52:01
【问题描述】:

我一直在尝试从 Eclipse 迁移到 Android Studio,但与其他许多人一样,我遇到了依赖问题。我希望有更多使用 IntelliJ 经验的人来帮助我。

我有一个工作应用程序(在 Eclipse 中),它有一些简单的依赖项,主要是易于移植的独立 jar。随着时间的推移,我可能会用 Gradle/Maven 替换这些,但现在 Jars 可以了。

但是,我也有 NumericPageIndicator 作为库项目,而 Jake Wharton's Android-ViewPagerIndicator 也是一个库项目。

就是这个库,我好像无法导入。

我尝试将其添加为简单的 Maven 依赖项:

  1. 首先只有 NumericPageIndicator:编译 'com.github.manuelpeinado.numericpageindicator:library:1.1.1'
  2. 其次还有 Android-ViewPagerIndicator:编译 'com.viewpagerindicator:library:2.4.1'

两者都会导致编译错误,表明这些库没有被包含(正确)。

我也没有在“外部库”标题下看到这 2 个 Maven 导入。我在 jar 列表下转到 Project structure -> Modules -> Dependencies 时确实看到了它们。

目前我的整个 gradle 文件是这样的:

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

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.0'

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 19
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
    buildTypes {
        release {
            runProguard false
            proguardFile getDefaultProguardFile('proguard-android.txt')
        }
    }
    productFlavors {
        defaultFlavor {
            proguardFile 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile files('src/main/libs/android-support-v4.jar')
    compile files('src/main/libs/commons-io-1.3.2.jar')
    compile files('src/main/libs/commons-lang3-3.1.jar')
    compile files('src/main/libs/gson-2.2.2.jar')
    compile files('src/main/libs/picasso-1.0.2.jar')
    compile files('src/main/libs/robospice-1.4.1-SNAPSHOT.jar')
    compile files('src/main/libs/robospice-cache-1.4.1-SNAPSHOT.jar')
    compile files('src/main/libs/robospice-ormlite-1.4.1-SNAPSHOT.jar')
    compile files('src/main/libs/robospice-spring-android-1.4.1-SNAPSHOT.jar')
    compile files('src/main/libs/spring-android-core-1.0.1.RELEASE.jar')
    compile files('src/main/libs/spring-android-rest-template-1.0.1.RELEASE.jar')
    compile files('src/main/libs/twitter4j-async-3.0.3.jar')
    compile files('src/main/libs/twitter4j-core-3.0.3.jar')
    compile files('src/main/libs/twitter4j-examples-3.0.3.jar')
    compile files('src/main/libs/twitter4j-media-support-3.0.3.jar')
    compile files('src/main/libs/twitter4j-stream-3.0.3.jar')
    compile files('src/main/libs/ormlite-android-4.45.jar')
    compile files('src/main/libs/ormlite-core-4.45.jar')
    compile 'com.github.manuelpeinado.numericpageindicator:library:1.1.1'
    compile 'com.viewpagerindicator:library:2.4.1'
}

【问题讨论】:

  • 您是否仔细检查过这些库是否可以从 Maven Central 获得?工件 ID 看起来很奇怪。
  • 我从他们的 Githubs 中获取了“链接”,但是:Jake Wharton 的库:search.maven.org/… 和另一个库:search.maven.org/…
  • 尝试在命令行中调用 Gradle。这将告诉您是否无法解析库。我不确定 Gradle 是否理解 Maven 包装类型。相反,您可以尝试com.github.manuelpeinado.numericpageindicator:library:1.1.1@apklib。请注意,这不会带来传递依赖。
  • 还可以看看stackoverflow.com/questions/15173923/…,它说apklib 包装与新的基于Gradle 的Android 构建系统不兼容。

标签: android maven intellij-idea gradle android-studio


【解决方案1】:

删除

repositories {
    mavenCentral()
}

您先添加了它。不需要第二个。

你可以这样做:

compile 'com.viewpagerindicator:library:+'

【讨论】:

  • mavenCentral 的两个声明都是必需的。第一个是 Gradle 依赖项,第二个是代码依赖项。
  • @PeterNiederwieser Strange:我只有一个声明,所有依赖项都可以正常工作
  • 奇怪。这可能意味着您的 Gradle 或您的代码依赖项不是来自 Maven Central。
  • @PeterNiederwieser 这是从哪里来的? : 依赖项 { 编译 'com.android.support:support-v13:+' 编译 'com.google.code.gson:gson:+' 编译 'org.apache.commons:commons-io:+'}
  • 也许您已经在其他地方配置了存储库(例如父构建脚本)。如果没有存储库声明,它将无法工作。
猜你喜欢
  • 1970-01-01
  • 2015-07-03
  • 1970-01-01
  • 1970-01-01
  • 2018-10-24
  • 2018-11-15
  • 2015-12-09
  • 1970-01-01
  • 2018-06-08
相关资源
最近更新 更多