该项目不是基于Gradle的项目。如何从根目录打开项目?

时间:2018-07-03 17:53:04

标签: android android-studio gradle android-gradle

这个问题我已经有一段时间了,我的脑袋还在绞尽脑汁。

我用这个答案here

响应是“请确保从项目的根目录打开该项目。即,该目录包含顶级build.gradle文件。”

我的问题是:如果我从bitbucket克隆了项目,该怎么办?

这是我的文件树的屏幕截图: screen

谢谢您的见解

编辑:Gradle文件

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'        
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

应用级别:

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
    }
}

apply plugin: 'com.android.application'
apply plugin: 'android-apt'
def AAVersion = '4.0.0'
def JacksonVersion = '2.6.0'
def GPSVersion = '6.5.87'

dependencies {
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.android.support:design:23.0.0'
    compile 'com.android.support:recyclerview-v7:23.0.0'
    compile 'com.android.support:preference-v7:23.0.0'
}

repositories {
    maven {
        url 'https://repo.spring.io/libs-milestone'
    }
}

apt {
    arguments {
        androidManifestFile variant.outputs[0].processResources.manifestFile
        resourcePackageName "appname"
        logLevel 'TRACE'
        logAppenderConsole 'true'
    }
}

android {
    compileSdkVersion 23
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "appname"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }

    buildTypes {
        release {
            shrinkResources false
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/ASL2.0'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }
}

allprojects {
    repositories {
        jcenter()
        mavenCentral()
    }
}

2 个答案:

答案 0 :(得分:3)

您的项目不是基于Gradle的,因为settings.gradlebulid.gradle不在IDE项目目录中,它们位于您的.idea.gradle下的黑盒文件夹中图片。

您必须关闭此项目。不管您从何处获得该项目,都请将该其他文件夹作为Android Studio项目打开。

对于Github中的图书馆项目,它看起来像这样。任何人都可以按原样克隆并作为项目打开。

对于应用,请将sample替换为app,然后删除library


最重要的是,buildscriptallprojects部分不应位于/app/build.gradle中,而只能位于/build.gradle

此外,您的Gradle build plugin is outdated

答案 1 :(得分:0)

顶层应如下所示:

lexical "*" = [*];

应用程序级别文件应如下所示:

lexical Scheme = AnyScheme ; 
lexical AnyScheme = KnownScheme > UnknownScheme ;
lexical AnySchemeChar = [a-z*];
lexical KnownScheme = KnownSchemes !>> AnySchemeChar ;  
keyword KnownSchemes = "http" | "https" | "http*" | "javascript" ;
lexical UnknownScheme = UnknownFixedScheme | UnknownWildScheme ;
lexical UnknownFixedScheme = [a-z]+ !>> AnySchemeChar \ KnownSchemes ;
lexical UnknownWildScheme = ([a-z]* '*' AnySchemeChar*) !>> AnySchemeChar  \ KnownSchemes ;

您需要从其中删除buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() jcenter() } } task clean(type: Delete) { delete rootProject.buildDir } 插件,因为该功能已包含在内。如果以后遇到麻烦,请检查this question