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 中打开它,/librabry/build.gradle按照 (2) 中的说明生成了一个文件。

生成的 Eclipse ADTbuild.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 包装器”选项。完整idea.log条目可在 (4) 处查看。

任何帮助将不胜感激,谢谢。

4

5 回答 5

12

如果您这样使用,就会发生这种情况Environment Variables

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
于 2015-08-04T22:01:57.887 回答
3

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

android {
signingConfigs {
    release {
        storeFile file(**DoubleCheckPath**)
        storePassword RELEASE_STORE_PASSWORD
        keyAlias RELEASE_KEY_ALIAS
        keyPassword RELEASE_KEY_PASSWORD
    }
}
于 2015-08-13T19:46:31.407 回答
2

(由 OP 在问题编辑中回答。转换为社区 wiki 答案。请参阅没有答案的问题,但问题在评论中解决(或在聊天中扩展)

OP写道:

好的,解决了。android.sourceSets问题在于in下的空列表build.gradle,我将它们注释掉以解决错误。这是我目前的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')
    }
}

希望对大家有帮助。

于 2015-01-29T12:04:03.960 回答
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
    }
}
于 2018-04-16T10:15:08.150 回答
0

你可能会错过项目中的一个文件,对于“gradle.properties”文件,因为这个文件包含一些变化,例如,我们自定义的var,比如key.storefile key.keypassword,你应该检查这个文件是否存在。

于 2016-11-28T09:29:56.520 回答