ไม่พบการกำหนดค่าการไล่ระดับของ Android Studio ที่มีชื่อ 'default'


181

ฉันมีปัญหาในการรวบรวมแอพของฉันกับ Android Studio (0.1.5) แอพนี้ใช้ห้องสมุด 2 แห่งซึ่งฉันได้รวมไว้ดังต่อไปนี้:

settings.gradle

include ':myapp',':library',':android-ColorPickerPreference'

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')
    compile project(':library')
    compile project(':android-ColorPickerPreference')

}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 16
    }
}

เมื่อรวบรวมฉันได้รับข้อความนี้:

  Gradle: A problem occurred configuring project ':myapp'.
   > Failed to notify project evaluation listener.
   > Configuration with name 'default' not found.

คุณช่วยฉันด้วยข้อความนี้ได้ไหม ขอบคุณ!


5
โครงการไลบรารีที่ประกาศใน settings.gradle มีการกำหนดค่าอย่างถูกต้องไฟล์ build.gradle ในรากโครงการ ยัง: library และ: android-ColorPickerPreference จำเป็นต้องอยู่ในไดเรกทอรีที่ระดับเดียวกันในโครงสร้าง dir ของคุณเป็นไฟล์ settings.gradle ของคุณหรือไม่
speedynomads

ปัญหานี้เกิดขึ้นกับฉันเมื่อฉันไม่มีไฟล์ build.gradle ในโครงการห้องสมุดของฉัน การสร้างไฟล์นี้ทำให้ข้อผิดพลาดหายไป
IgorGanapolsky

ในกรณีของฉันไฟล์การกำหนดค่า gradle หนึ่งไฟล์ของฉันหายไปมันดันไม่ถูกต้อง
Zar E Ahmer

วิธีการสร้างไฟล์ gradle.build .. ฉันยังเจอปัญหาเดียวกันหรือไม่

คำตอบ:


82

ในกรณีของฉันหลังจากรวบรวมด้วยgradle tasks --infoบันทึกอยู่ที่นั่น:

การประเมินโครงการ ': libraries: VolleyLibrary' โดยใช้ไฟล์บิลด์เปล่า

ดังนั้นจึงไม่พบไฟล์ build.gradle ของไลบรารี เหตุผลคือโครงสร้างโฟลเดอร์

มันเป็น

-libraries
--volley
---VolleyLibrary

มันควรจะเป็น

-libraries
--VolleyLibrary

คุณได้รับการประเมิน ': ห้องสมุด: VolleyLibrary' อย่างไร บรรทัดนั้นมีลักษณะอย่างไรในไฟล์ build.gradle ของคุณ
IgorGanapolsky

การพึ่งพา {คอมไพล์ ': ไลบรารี: VolleyLibrary'} มันควรเป็นแบบนี้และไม่มีอะไรเพิ่มเติม
guydemossyrock

1
ตามตัวอย่างโค้ดของคุณด้านบน: ไลบรารี่ควรเป็นตัวพิมพ์ใหญ่
IgorGanapolsky

3
คุณจะรวบรวม "gradle task --info" ได้อย่างไร?
toddmo

8
./gradlew tasks --infoนี่จะแสดงข้อมูลของงานทั้งหมด ฉันคิดว่านี่จะเป็นประโยชน์ในการค้นหาสิ่งที่ผิดพลาด
srain

60

ฉันลืมที่จะดึง submodules ทั้งหมด ดังนั้นฉัน

compile project(':something')

ไม่สามารถแก้ไขได้

สารละลาย

git submodule update --init

2
โปรดอธิบายว่าฉันควรจะเรียกใช้คำสั่งนี้ในโฟลเดอร์ใด - โฟลเดอร์โครงการหรือโฟลเดอร์ submodule
Ajith Memana

1
คำตอบนี้ควรได้รับการยอมรับ ข้อความแสดงข้อผิดพลาดที่ทำให้เข้าใจผิดในกรณีส่วนใหญ่หมายความว่าคุณลืมที่จะโคลน submodules
vigilancer

1
ในกรณีของฉันฉันลืมยากที่จะลบ submodule ออกจาก settings.gradle ไฟล์ ดังนั้นระวัง! : D
Yaroslav Havrylovych

20
compile fileTree(dir: '//you libraries location//', include: ['android-ColorPickerPreference'])

ใช้บรรทัดด้านบนในไฟล์gradleของแอปแทน

compile project(':android-ColorPickerPreference')

หวังว่ามันจะช่วย


19

ขั้นตอนต่อไปนี้แก้ไขปัญหาของฉัน:

  • ไปที่การตั้งค่าโมดูลย่อย / ไลบรารีโมดูล (กดF4หลังจากเลือกโมดูล)
  • คลิกขวาที่เพิ่ม> Android-Gradle
  • เพิ่ม build.gradle ไปยังโมดูลของคุณ
  • เพิ่มสคริปต์ต่อไปนี้

    buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
     }
    
    
      apply plugin: 'android-library'
    
    repositories {
    mavenCentral()
    }
    
    android {
    compileSdkVersion 18
    buildToolsVersion "18.1.0"
    
    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 18
    }
    
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    
    }
       } 
    1. เพิ่มinclude ':yourModuleName'ใน settings.gradle ของคุณ

เมื่อฉันเลือกการตั้งค่าโมดูลโครงการห้องสมุดไม่ใช่ตัวเลือกและ f4 ไม่ทำอะไรเลย
Daniel Baughman

1
@DanielBaughman โปรดชี้แจงคำถามของคุณ แต่ในกรณีที่คุณยังไม่พบการตั้งค่าโมดูลคุณสามารถทำได้ 2 สิ่ง: 1) ไปที่ไฟล์> นำเข้าโมดูลและทำตามขั้นตอน Android Studio จะเพิ่มไฟล์ build.gradle และ ยังเพิ่มการอ้างอิง 2) เพิ่มไฟล์ build.grade ด้วยตนเองเขียนสคริปต์ลงไปและปัญหาของคุณจะได้รับการแก้ไข
Ahmad Ali Nasir

1
ขอขอบคุณสำหรับความช่วยเหลือของคุณ. สิ่งที่ฉันทำคือใส่โฟลเดอร์ที่ฉันกำลังนำเข้าไปในโครงการ - นำเข้าโมดูลและจากนั้นในคุณสมบัติโครงการของฉันอ้างอิงโมดูลแหล่งที่มาที่ฉันได้กำหนดเป้าหมายให้นำเข้าเป็นไลบรารีแทนโฟลเดอร์โมดูลใหม่ที่สร้างขึ้น ฉันปรับการอ้างอิงนั้นและแก้ไขมัน
Daniel Baughman

12

ฉันยังประสบกับข้อผิดพลาดนี้ - ฉันลืมที่จะสร้างสคริปต์ build.gradle สำหรับโครงการห้องสมุด


10

ยังมีอีกสาเหตุ - ฉันพยายามรวมโมดูลใน settings.gradle ใช้

include ':MyModule'
project(':MyModule').projectDir = new File(settingsDir, '../../MyModule')

ปัญหาเดียวก็คือฉันได้นำเข้าเพียงโมดูลจากคราสลืมที่จะย้ายไดเรกทอรีนอกโครงการใบสมัครของฉันคือเส้นทางที่'../../MyModule'ไม่ได้อยู่


นี่เป็นปัญหาของฉันไม่มากก็น้อยเช่นกัน ฉันมีมากเกินไป../ในเส้นทางและมันไม่ได้ชี้ไปยังสถานที่ที่ถูกต้อง นี่เป็นเรื่องยากโดยเฉพาะอย่างยิ่งเนื่องจาก Android Studio / Gradle จะสร้างไดเรกทอรีหากไม่มีอยู่ แทนที่จะโยนข้อผิดพลาดอย่างง่าย ๆ โดยบอกว่า "ไม่"
Joshua Pinter

7

โซลูชันของฉันคือการลบบรรทัดออกจากไฟล์ settings.gradle ซึ่งหมายถึงโมดูลที่ไม่มีอยู่:

include ':somesdk'

และลบบรรทัดที่เกี่ยวข้องออกจาก build.gradle ของโครงการหลัก:

compile project(':somesdk')

6

ฉันมีปัญหา submodule คอมไพล์เมื่อได้รับข้อผิดพลาดนี้ ลองใช้gradle tasks --infoเพื่อดูคำอธิบายปัญหาโดยละเอียดเพิ่มเติม ครั้งแรกที่ผมใช้ซึ่งไม่ได้เกือบเป็นประโยชน์เช่นgradle tasks --debug--info


5

สมมติว่าคุณต้องการเพิ่มห้องสมุด (เช่น MyLib) ในโครงการของคุณคุณควรทำตามขั้นตอนเหล่านี้:

  1. เตรียมไลบรารีของคุณเป็นไลบรารี่ Android หากประเภทห้องสมุดของคุณคือ Eclipse ADT
    สำหรับงานนี้ก็เพียงพอที่จะนำเข้าใน Android Studio
  2. คัดลอกโฟลเดอร์ไลบรารีของคุณในกรณีนี้โฟลเดอร์ MyLib และวางไว้ในโฟลเดอร์โครงการหลักของคุณ เป็นวิธีปฏิบัติที่ดีในการสร้างโฟลเดอร์ใหม่ในโฟลเดอร์โครงการหลักของคุณและตั้งชื่อเป็น Library
  3. ไปที่ Android Studio และเปิดไฟล์Settings.gradle ที่นั่นคุณควรใส่ไลบรารี่ของคุณไว้ในโครงการหลักของคุณ include ':MyPrj', 'Libraries:MyLib'เช่น หมายเหตุ : ไดเรกทอรีปัจจุบันสำหรับคำสั่ง include นี้เป็นโฟลเดอร์โครงการหลักของคุณ หากคุณวางโครงการลงในโฟลเดอร์คุณต้องพูดถึงที่อยู่ของโครงการซึ่งสัมพันธ์กับไดเรกทอรีโครงการหลัก ในกรณีของฉันฉันวางMyLibลงในโฟลเดอร์Libraries นี้ห้องสมุดชื่อไม่ได้เป็นคำหลักและคุณสามารถเลือกชื่ออื่น ๆ สำหรับมัน
  4. เปิดหน้าโครงสร้างโครงการของคุณ ( ไฟล์ -> โครงสร้างโครงการ ... ) คลิกที่โมดูลจากนั้นคลิกที่โครงการหลักของคุณไปที่แท็บการพึ่งพาคลิกที่+แล้วเลือกการพึ่งพาโมดูลและมีห้องสมุดของคุณและคุณสามารถเลือกพวกเขาตามที่คุณต้องการ

หวังว่ามันจะช่วย


เพื่อให้ชัดเจนไปที่โครงการ github sliding-menu github.com/jfeinstein10/SlidingMenu/tree/master/libraryและตรวจสอบโครงสร้างของมัน! มีรูปแบบไฟล์ android โครงการ+build.gradle แบบเก่า!! ขอบคุณ @ABFORCE +1
เดดฟิช

โพสต์นี้ช่วยฉันด้วยการนำเข้า OpenCV4 Android และ Android Studio ดังนั้นฉันจะรับรองวิธีนี้
เครก

5

ในกรณีของฉันฉันใช้ไฟล์ Gradle ที่ทำงานภายใต้ Windows แต่ล้มเหลวบน Linux include ':SomeProject'และcompile project(':SomeProject')เป็นกรณีที่สำคัญและไม่ได้พบ



3

ทุกอย่างดูดีที่อายแรก แต่บางคนก็พูดพล่ามที่นี่พบคำตอบที่อาจเป็นประโยชน์: https://stackoverflow.com/a/16905808/7944

แม้แต่ผู้เขียนคำตอบดั้งเดิมก็ยังไม่มั่นใจ แต่ก็คุ้มค่าที่จะติดตาม นอกจากนี้คุณไม่ได้พูดอะไรเกี่ยวกับโครงสร้างไดเรกทอรีของคุณดังนั้นฉันคิดว่ามันน่าเบื่อที่เป็นค่าเริ่มต้น แต่ไม่รู้แน่ชัด


2

สาเหตุที่เป็นไปได้อีกประการหนึ่งของข้อผิดพลาดที่แม่นยำนี้: ฉันพบข้อผิดพลาดนี้ได้รับการแก้ไขโดยการแสดงความคิดเห็นบางไลบรารีที่ไม่ได้ใช้ในส่วนการอ้างอิง build.gradle ตรวจสอบให้แน่ใจว่าเส้นทางเหล่านี้และสิ่งนั้นถูกต้องทั้งหมด

ฉันจะดูโครงการคอมไพล์ของคุณ (': android-ColorPickerPreference') ใน build.gradle - ลองคอมเม้นท์โค้ดที่เกี่ยวข้องและบรรทัดนี้ใน build.gradle และดูว่าคอมไพล์นั้น - จากนั้นไปแก้ไขที่ ปัญหาเกี่ยวกับเส้นทางหรือไลบรารี


2

ฉันมีปัญหาที่คล้ายกันและพบวิธีที่ง่ายมากในการเพิ่มห้องสมุดให้กับโครงการ

  1. สร้างโฟลเดอร์ "libs" ในรากของโครงการของคุณ
  2. คัดลอกไฟล์ JAR ไปยังโฟลเดอร์นั้น
  3. กลับไปที่ Android Studio ค้นหาไฟล์ JAR ของคุณและคลิกขวาเลือก "เพิ่มเป็นห้องสมุด ... " มันจะถามเฉพาะโมดูลที่คุณต้องการเพิ่มและเลือก "แอป"

ตอนนี้ในโมดูล "แอพ" ของคุณคุณสามารถใช้คลาสจาก JAR นั้นก็จะสามารถค้นหาและเพิ่มการประกาศ "นำเข้า" โดยอัตโนมัติและคอมไพล์เพียงแค่ตกลง ปัญหาเดียวอาจเป็นได้ว่ามันเพิ่มการพึ่งพากับเส้นทางที่แน่นอนเช่น:

compile files('/home/user/proj/theproj/libs/thelib-1.2.3.jar')

ใน "แอพ / build.gradle" ของคุณ

หวังว่าจะช่วย!


2

ฉันแก้ไขปัญหานี้โดยแก้ไขเส้นทางบางอย่างในsettings.gradleดังที่แสดงด้านล่าง:

include ':project-external-module'

project(':project-external-module').projectDir = file('/project/wrong/path')

ฉันได้รวมโมดูลภายนอกกับโครงการของฉันและมีเส้นทางที่ผิดสำหรับมัน


1

ฉันมีปัญหานี้เมื่อฉันวาง google-play-services_lib ด้วยตนเองลงในโครงการของฉัน เห็นได้ชัดว่า play-services ไม่มีไฟล์ build.gradle อยู่ในนั้น ฉันได้เรียนรู้วิธีการแก้ปัญหาคือการวางการพึ่งพานี้ในbuild.gradleของโครงการของฉัน(แทนที่จะคัดลอกไดเรกทอรีบริการเล่นอย่างหนัก):

    compile 'com.google.android.gms:play-services:4.0.+'

1

เมื่อฉันนำเข้าห้องสมุดของฉันด้วยตนเองฉันมีปัญหาเดียวกัน ฉันพยายามเพิ่มห้องสมุดด้วยไฟล์> โมดูลนำเข้าและแก้ไขปัญหาของฉัน


1

ในกรณีของฉันฉันได้รับข้อผิดพลาดนี้เมื่อฉันสะกดชื่อโมดูลของไลบรารี (การพึ่งพา) ในbuild.gradleไฟล์

ดังนั้นอย่าลืมตรวจสอบว่าชื่อของโมดูลนั้นถูกต้องหรือไม่

build.gradle

dependencies {
    compile project(':module-name-of-the-library')
}

1

ฉันเพิ่งพบข้อผิดพลาดนี้เมื่อฉันอ้างอิงโครงการที่ริเริ่มโดยใช้ submodule คอมไพล์

ในที่สุดฉันก็พบว่าbuild.gradleไฟล์รูทของ submodule (โปรเจ็กต์ java) ไม่มีการใช้จาวาปลั๊กอินในระดับรูท

มันมีเพียง

apply plugin: 'idea'

ฉันเพิ่มปลั๊กอิน java:

apply plugin: 'idea'
apply plugin: 'java'

เมื่อฉันใช้ปลั๊กอิน java ข้อความ 'ไม่พบค่าเริ่มต้น' จะหายไปและการสร้างสำเร็จ


1

นอกจากนี้ ... ตรวจสอบว่าคุณมีไฟล์โมดูลภายในโครงการของคุณหรือไม่

ตัวอย่างเช่นฉันมีแอพที่ใช้โมดูล Volley ระหว่างการศึกษาเกี่ยวกับการพัฒนา Android ฉันบังเอิญลบไฟล์ที่อยู่ในไดเรกทอรี "วอลเลย์"

~/git/Sandbox/android/HelloWorld/volley $ ll
total 8
drwxrwxr-x 2 ivanleon ivanleon 4096 Jun 16 22:26 ./
drwxrwxr-x 6 ivanleon ivanleon 4096 Jun 17 01:51 ../

ฉันเพิ่งโคลนโครงการ(ดูตะโกน)จากนั้นฉันทำ Sync ของโครงการที่ Android Studio (เครื่องมือ> Android> ซิงค์โครงการที่มีไฟล์ Gradle)และ Gradle build เสร็จตามปกติ(Gradle Console: มุมขวาล่างของ Android Studio) ;)

~/git/Sandbox/android/HelloWorld/volley $ git clone https://android.googlesource.com/platform/frameworks/volley
Cloning into 'volley'...
remote: Counting objects: 164, done
remote: Finding sources: 100% (164/164)
remote: Total 3222 (delta 307), reused 3222 (delta 307)
Receiving objects: 100% (3222/3222), 1.22 MiB | 114.00 KiB/s, done.
Resolving deltas: 100% (307/307), done.
Checking connectivity... done.

~/git/Sandbox/android/AndroidGetJSON $ ls volley
Android.mk      build         build.xml         pom.xml       
proguard-project.txt      src    bintray.gradle  build.gradle
custom_rules.xml  proguard.cfg  rules.gradle          volley.iml

0

build.gradleของคุณสำหรับโมดูล / ไลบรารีอาจจะง่ายเหมือน:

apply plugin: 'java'

sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7

หากโมดูลของคุณเป็นเพียงคอลเลกชันของคลาส. java POJO

ถ้าเป็นรุ่น / คลาสเอนทิตี้ของและคุณใช้คำอธิบายประกอบและมีการอ้างอิงบางอย่างคุณสามารถเพิ่มสิ่งต่อไปนี้ใน:

apply plugin: 'java'

sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.j256.ormlite:ormlite-core:4.48'
    compile 'com.j256.ormlite:ormlite-android:4.48'
    compile 'com.j256.ormlite:ormlite-jdbc:4.48'
}

0

สิ่งนี้จะเกิดขึ้นเมื่อคุณทำการรวบรวมการนำเข้าหรือคัดลอกโฟลเดอร์ / โครงการเป็นโมดูลในโฟลเดอร์ไลบรารี ปัญหานี้เพิ่มขึ้นเมื่อฉันไม่ได้รวมbuild.gradleไฟล์ เมื่อฉันเพิ่มไฟล์ทุกอย่างเป็นไปด้วยดี


0

สำหรับฉันมันกลายเป็นลิงก์สัญลักษณ์สัมพัทธ์ (ไปยังโครงการอ้างอิง) ที่ไม่สามารถใช้งานโดยเกรด (ฉันอ้างอิงห้องสมุด) นั่นเป็นกรณีที่ค่อนข้างทันสมัย ​​แต่บางทีมันอาจช่วยใครบางคนในอนาคต

ฉันแก้ไขมันโดยใส่ลิงค์สัญลักษณ์แบบสัมบูรณ์

ก่อนln -s ../libraryหลังln -s /the/full/path/to/the/library


0

ฉันยังประสบปัญหาเดียวกันและแก้ไขได้โดยเปลี่ยนหนึ่งธง (gradle.ext.set ("allowLocalEdits", จริง)) เป็น false ใน settings.xml


0

สำหรับฉันไลบรารีที่ขึ้นต่อกันหนึ่งรายการไม่มีอยู่ในพา ธ ที่ถูกต้อง แต่ข้อความแสดงข้อผิดพลาดไม่ได้ชี้ว่าไลบรารีนั้นถูกต้อง

ตัวอย่างเช่นสิ่งที่ฉันพลาดคือ:library-3ข้อผิดพลาดเกิด:library-1ขึ้น

gradle ไม่ดี


-1

ลองเพิ่มห้องสมุด Volley และซิงค์และเรียกใช้โปรแกรม หากมีใครดึงและฉันมีการใช้วอลเลย์และข้อผิดพลาดแสดงเป็น -Android Studio Gradle Configuration ที่ไม่พบชื่อ 'default' จากนั้นทำตามขั้นตอนของการเพิ่ม volley library ใน gradle ของคุณ หวังว่ามันจะช่วย ฉันแก้ไขปัญหาของฉันด้วยวิธีนี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.