在Android Studio 0.2.9导入Gradle项目时出现错误:"路径"和"基础目录"都不能为空。

12
注意: 我无法发布链接,所以我猜你需要去这里查看引用。抱歉,这不是我的规定。

当我试图将一个项目导入到Android Studio 0.2.9时,我遇到了以下错误:

Could not execute build using Gradle distribution 
'http://services.gradle.org/distributions-snapshots/
gradle-1.8-20130830160653+0000-bin.zip'.
A problem occurred configuring project ':library'.
A problem occurred configuring project ':library'.
Failed to notify project evaluation listener.
Neither path nor baseDir may be null or empty 
string. path='' basedir='<projects folder>/
drag-sort-listview/library'

Consult IDE log for more details (Help | Show Log)

该项目最初是一个Maven项目 (1). 我在Eclipse ADT中打开它,并按照(2)的说明生成了一个 /librabry/build.gradle文件。

Eclipse ADT生成的build.gradle文件如下:

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

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

android {
    compileSdkVersion 7
    buildToolsVersion "17.0.0"

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

        instrumentTest.setRoot('tests')
    }
}

我不得不修改第6行为:

classpath 'com.android.tools.build:gradle:0.4'

classpath 'com.android.tools.build:gradle:0.5+'

我希望您可以帮助使Android Studio停止显示版本不匹配的提示。我还添加了一个包含/settings.gradle文件的项目。


include ':library'

同时还需要一个/local.properties文件,其中包含以下内容:

# This file is automatically generated by Android Studio.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.

# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
sdk.dir=/Applications/Android Studio.app/sdk
我尝试通过在“文件|导入项目...”对话框中选择/settings.gradle文件来导入它。我已经检查了“使用自动导入”并在对话框(3)中选择了“使用带验证的gradle wrapper”选项。完整的idea.log条目可以在(4)中查看。非常感谢您的任何帮助。
5个回答

12

如果您正在使用类似于环境变量的东西,就会发生这种情况:

android {
signingConfigs {
    release {
        storeFile file(RELEASE_STORE_FILE)
        storePassword RELEASE_STORE_PASSWORD
        keyAlias RELEASE_KEY_ALIAS
        keyPassword RELEASE_KEY_PASSWORD
    }
}

而且您还没有在位于项目根目录的gradle.properties文件中定义这些变量。

要解决此问题,请确保已定义变量,以下是我的gradle.properties文件示例:

RELEASE_STORE_FILE=app_keystore.jks
RELEASE_STORE_PASSWORD=password
RELEASE_KEY_ALIAS=MyAppKey
RELEASE_KEY_PASSWORD=password

3

这个错误可能与你的密钥库路径有关。如果密钥库路径不起作用,它会认为它是空的。如果你只想使用密钥库文件名(而不是完整路径),请确保密钥库位于项目的根目录中。

android {
signingConfigs {
    release {
        storeFile file(**DoubleCheckPath**)
        storePassword RELEASE_STORE_PASSWORD
        keyAlias RELEASE_KEY_ALIAS
        keyPassword RELEASE_KEY_PASSWORD
    }
}

2

问题的提问者在编辑问题后回答了自己的问题。转换为社区wiki答案。请参见没有答案但在评论中解决的问题(或在聊天中扩展)

提问者写道:

好的,问题已经解决了。问题出在build.gradle文件下android.sourceSets中的空列表上,我将它们注释掉以解决错误。这是我的当前build.gradle文件:

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

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

android {
    compileSdkVersion 7
    buildToolsVersion "17.0.0"

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

        instrumentTest.setRoot('tests')
    }
}

希望这可以帮助大家。

0

修改文件(String.valueOf(RELEASE_STORE_FILE))中的内容

android {
 signingConfigs {
 release {
     storeFile file(RELEASE_STORE_FILE)
     storePassword RELEASE_STORE_PASSWORD
     keyAlias RELEASE_KEY_ALIAS
     keyPassword RELEASE_KEY_PASSWORD
    }
}

0

在项目中可能会遗漏一个文件,即 "gradle.properties" 文件,因为该文件包含一些变量,例如我们的自定义变量,如 key.storefile 和 key.keypassword。您应该检查该文件是否存在。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接