Android Studio导入模块Gradle构建错误

KDE*_*DEx 8 android gradle android-studio

我试图在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
...
Run Code Online (Sandbox Code Playgroud)

这是我的应用程序的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
}
}
Run Code Online (Sandbox Code Playgroud)

如何正确导入此外部库,您能解释一下解决方案的工作原理和原因吗?

may*_*ysi 8

所以这就是我如何解决我的问题:

而不是添加

dependencies {
    compile files('libs/android-support-v4.jar')
    compile project(':Module')
}
Run Code Online (Sandbox Code Playgroud)

你必须写:

dependencies {
    compile files('libs/android-support-v4.jar', '../Module')
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

Examplestructure:

  • 项目

    • 库(普通文件夹)
      • 单词数
    • 模块1

settings.gradle

include ':Module1', ':libraries:Module2'
Run Code Online (Sandbox Code Playgroud)

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
    }
}
Run Code Online (Sandbox Code Playgroud)

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']
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

通过这些步骤,一切都应该很好.如果有任何问题请告诉我:)