"Ни путь, ни baseDir не могут быть пустой или пустой строкой". ошибка при импорте проекта gradle в Android Studio 0.2.9

ПРИМЕЧАНИЕ. Я не могу размещать ссылки, поэтому я думаю, вам нужно будет здесь следовать рекомендациям. извините, не мое правило.

Я получаю следующую ошибку при попытке импортировать проект в 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 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
Затем

i попытался импортировать файл /settings.gradle, выбрав его в поле "Файл | Импорт проекта...". у меня есть опция "Использовать автоматический импорт" и "Использовать опцию gradle обертка с проверкой", выбранную в диалоговом окне (3). полная запись idea.log может быть просмотрена на (4).

любая помощь будет принята с благодарностью, спасибо.

Ответ 1

Это произойдет, если вы используете 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

Ответ 2

Ошибка может относиться к вашему пути к хранилищу ключей. Если путь хранилища ключей не работает, он будет считать его нулевым. Если вы просто хотите использовать имя файла хранилища ключей (вместо полного пути), убедитесь, что хранилище ключей находится в корневой директории вашего проекта.

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

Ответ 3

(Отвечает OP в вопросе редактирования. Преобразован в ответ на wiki сообщества. См. Вопрос без ответов, но проблема разрешена в комментариях (или расширенной в чате))

OP писал (а):

ok, решил. проблема заключается в пустых списках под android.sourceSets в 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')
    }
}

надеюсь, что это поможет y'all.

Ответ 4

вы можете пропустить файл в проекте, для файла gradle.properties ", потому что этот файл включает в себя некоторые изменения, например, наш пользовательский var, такой ключ key.storefile key.keypassword, вы должны проверить этот файл существует или нет.