8

我正在尝试在 Android Studio(GameBaseUtils) 中添加一个目录作为依赖项。我已经看到其他 SO 答案只是为他们的特定问题发布了正确的 gradle 配置,但是我不明白如何根据我的情况调整他们的答案。

这是我所做的:

第一步:文件->导入模块->导航到目录并选择它。

第二步-:文件->项目结构->模块->选择我的应用程序->依赖项->将模块作为依赖项添加到我的项目中。

现在我的代码没有任何红线表示导入模块时出错。但是,当我选择构建时,出现以下错误:

Gradle: package com.google.example.games.basegameutils does not exist
Gradle: cannot find symbol class BaseGameActivity
Gradle: cannot find symbol variable super
...

这是我的应用程序的 build.gradle 文件

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

dependencies {
compile files('libs/android-support-v4.jar')
}

android {
compileSdkVersion 17
buildToolsVersion "17.0.0"

defaultConfig {
    minSdkVersion 8
    targetSdkVersion 17
}
}

如何正确导入此外部库,您能否解释一下您的解决方案如何以及为何起作用?

4

2 回答 2

8

所以这就是我解决问题的方法:

而不是添加

dependencies {
    compile files('libs/android-support-v4.jar')
    compile project(':Module')
}

你必须写:

dependencies {
    compile files('libs/android-support-v4.jar', '../Module')
}

2 个点表示模块(或目录)可以在实际目录上方的 1 个目录中找到。因此,如果您想访问上面 2 个目录的模块,您只需编写:'../../ModuleName'

您必须手动将模块添加到 build.gradle,因为 Android Studio 仍处于开发阶段,尚未完成用于编辑项目结构的 UI。

如果这不能解决您的问题,请尝试这样做:(我会推荐这种方法。这就是我实际的做法)

示例结构:

  • 项目

    • 库(普通文件夹)
      • 模块2
    • 模块1

设置.gradle

include ':Module1', ':libraries:Module2'

build.gradle (Module1)

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

dependencies {
    compile project(':libraries:Module2')
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 11
    }
}

build.gradle (Module2)

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

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

android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 11
    }

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

这现在应该很好用。要使一切正常工作 100%,请按照以下步骤操作:

  1. 删除.idea文件夹
  2. 删除所有*.iml文件
  3. 重启 Android Studio 并按下Import Project
  4. 选择您的 gradle 项目所在的目录
  5. Import project from external model> Gradle > 下一步 > 完成

有了这个步骤,一切都应该运作良好。如果有任何问题,请告诉我:)

于 2013-07-10T16:57:55.827 回答
-1

不要通过 Studio 界面添加模块。始终直接在 build.gradle 中进行更改,然后重新导入 Studio。

此外,将插件依赖项更新为 com.android.tools.build:gradle:0.4.+ 以获得最新的 0.4.* 版本。

于 2013-07-08T21:34:52.180 回答