我使用 Gradle 在 IntelliJ IDEA 上创建一个项目,并尝试向其中添加 AndroidSlidingUpPanel (https://github.com/umano/AndroidSlidingUpPanel).

我到底需要做什么来配置它?

我有以下文件夹结构:

RootFolder
|_libraries
    |_ AndroidSlidingUpPanel
         |_ library
               |_ build.gradle
         |_ settings.gradle
         |_ build.gradle
|_app
    |_ build.gradle
|_ settings.gradle
|_ build.gradle

文件是这样的:

根文件夹/settings.gradle

include ':app'
include ':libraries:AndroidSlidingUpPanel:library'

根文件夹/build.gradle

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

allprojects {
    repositories {
        mavenCentral()
    }
}

RootFolder/libraries/AndroidSlidingUpPanel/settings.gradle

include ':library'
include ':demo'

RootFolder/libraries/AndroidSlidingUpPanel/build.gradle

allprojects {

  group 'com.sothree.slidinguppanel'
  version '1.0.0-SNAPSHOT'

  buildscript {
    repositories {
      mavenCentral()
    }
  }

  dependencies {
    repositories {
      mavenCentral()
    }
  }
}

RootFolder/libraries/AndroidSlidingUpPanel/library/build.gradle

apply plugin: 'android-library'

buildscript {
  dependencies {
    classpath 'com.android.tools.build:gradle:0.7.+'
  }
}

dependencies {
  compile 'com.android.support:support-v4:13.0.0'
}

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.1"

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    }
}

根文件夹/app/build.gradle

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.2"

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:gridlayout-v7:19.0.1'
    compile 'com.android.support:support-v4:19.0.1'
    compile 'com.android.support:appcompat-v7:19.0.1'
    compile fileTree(dir: 'libs', include: ['*.jar'])
}
有帮助吗?

解决方案

您不清楚您可能遇到的构建错误或您的确切问题是什么,但因为您在您的代码中没有对 SlidingUpPanel 的依赖 应用程序/build.gradle, ,问题是如何包含它?

如果是这样,首先要记住的是一个项目不能有多个 设置.gradle. 。更准确地说,它只在根文件夹中查找并使用它(如果存在)。所以 设置.gradle根文件夹/库/AndroidSlidingUpPanel/ 将被忽略。看来您已经正确设置了 include 到 SlidingUpPanel 库中 根文件夹/settings.gradle, ,这样就很好:

include ':libraries:AndroidSlidingUpPanel:library'

要在您的应用程序中包含对其的依赖项,您可以使用 compile project 声明并给它相同的路径:

dependencies {
    compile 'com.android.support:gridlayout-v7:19.0.1'
    compile 'com.android.support:support-v4:19.0.1'
    compile 'com.android.support:appcompat-v7:19.0.1'
    compile project(':libraries:AndroidSlidingUpPanel:library')
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

如果您使用的是 Android Studio(它也应该适用于 IntelliJ Community Edition 中基于 Gradle 的项目),您可以通过以下方式从“项目结构”对话框中设置模块的依赖关系: 模块 > 你的模块 > 依赖关系 > + > 模块依赖:

Project Structure dialog showing how to add a module dependency

如果您已将该模块添加到您的 设置.gradle 如果您已经拥有并已将项目同步到 Gradle 文件,那么 SlidingUpPanel 模块应出现在 IDE 的项目视图中,并且应作为该依赖项列表中的模块选项出现。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top