2014-10-09 6 views
16

के साथ एंड्रॉइडस्टूडियो में प्रोजेक्ट नहीं बना सकता है मैंने एंड्रॉइड स्टूडियो में एंड्रॉइड स्टूडियो में एंड्रॉइड एप्लिकेशन को संकलित करने के बारे में कई चर्चाओं और ब्लॉगों को देखा है, विशेष रूप से this one, लेकिन उनमें से कोई भी मुझे शुरू करने में मदद नहीं करता है।AndroidAnnotations लाइब्रेरी

मैं एंड्रॉइड स्टूडियो 0.8.9 का उपयोग कर रहा हूं और मैं डाउनलोड किए गए ग्रैडल 2.1 बाइनरी पर इशारा कर रहा हूं। मैं उबंटू 14.04 का उपयोग कर रहा हूं।

ग्रेडल संकलन प्रक्रिया का कहना है कि मुझे किसी दिए गए स्थान पर AndroidManifest.xml की एक प्रति याद आ रही है (कृपया नीचे दिए गए आउटपुट को देखें) हालांकि मुझे यह फ़ाइल मेरे फ़ाइल एक्सप्लोरर के साथ इस फ़ोल्डर में नेविगेट करते समय मिला है।

कृपया यह भी ध्यान दें कि चेतावनी को हटाने के लिए, मैं Gradle लिपि में

variant.processResources.manifestFile 

प्रतिस्थापित द्वारा

variant.outputs.processResources.manifestFile 

यहाँ मेरी Gradle निर्माण स्क्रिप्ट:

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

apply plugin: 'android' 

repositories { 
    mavenCentral() 
} 

configurations { 
    apt 
} 

dependencies { 
    compile fileTree(include: '*.jar', dir: 'libs') 
    compile files('libs/androidsvg-1.2.1.jar') 
    compile 'com.android.support:appcompat-v7:20.0.0' 
    compile 'org.androidannotations:androidannotations-api:3.0' 
    apt 'org.androidannotations:androidannotations:3.0' 
} 

android { 
    compileSdkVersion 20 
    buildToolsVersion "20.0.0" 

    defaultConfig { 
     minSdkVersion 9 
     targetSdkVersion 20 
    } 

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

     // Move the tests to tests/java, tests/res, etc... 
     instrumentTest.setRoot('tests') 

     // Move the build types to build-types/<type> 
     // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... 
     // This moves them out of them default location under src/<type>/... which would 
     // conflict with src/ being used by the main source set. 
     // Adding new build types or product flavors should be accompanied 
     // by a similar customization. 
     debug.setRoot('build-types/debug') 
     release.setRoot('build-types/release') 
    } 
} 

def getSourceSetName(variant) { 
    return new File(variant.dirName).getName(); 
} 

android.applicationVariants.all { variant -> 
    def aptOutputDir = project.file("${project.buildDir}/source/apt/") 
    def aptOutput = new File(aptOutputDir, variant.dirName) 
    println "****************************" 
    println "variant: ${variant.name}" 
    println "manifest: ${variant.outputs.processResources.manifestFile}" 
    println "aptOutput: ${aptOutput}" 
    println "****************************" 

    android.sourceSets[getSourceSetName(variant)].java.srcDirs+= aptOutput.getPath() 

    variant.javaCompile.options.compilerArgs += [ 
      '-processorpath', configurations.apt.getAsPath(), 
      '-AandroidManifestFile=' + variant.outputs.processResources.manifestFile, 
      '-s', aptOutput 
    ] 

    variant.javaCompile.source = variant.javaCompile.source.filter { p -> 
     return !p.getPath().startsWith(aptOutputDir.getPath()) 
    } 

    variant.javaCompile.doFirst { 
     aptOutput.mkdirs() 
    } 
} 

यहाँ मेरी Gradle कंसोल आउटपुट:

Information:Gradle tasks [:compileDebugSources] 
**************************** 
variant: debug 
manifest: [<my_home>/AndroidStudioProjects/ChessPositionManagerAndroid/build/intermediates/manifests/full/debug/AndroidManifest.xml] 
aptOutput: <my_home>/AndroidStudioProjects/ChessPositionManagerAndroid/build/source/apt/debug 
**************************** 
**************************** 
variant: release 
manifest: [<my_home>/AndroidStudioProjects/ChessPositionManagerAndroid/build/intermediates/manifests/full/release/AndroidManifest.xml] 
aptOutput: <my_home>/AndroidStudioProjects/ChessPositionManagerAndroid/build/source/apt/release 
**************************** 
:preBuild 
:preDebugBuild 
:checkDebugManifest 
:preReleaseBuild 
:prepareComAndroidSupportAppcompatV72000Library UP-TO-DATE 
:prepareComAndroidSupportSupportV42000Library UP-TO-DATE 
:prepareDebugDependencies 
:compileDebugAidl UP-TO-DATE 
:compileDebugRenderscript UP-TO-DATE 
:generateDebugBuildConfig UP-TO-DATE 
:generateDebugAssets UP-TO-DATE 
:mergeDebugAssets UP-TO-DATE 
:generateDebugResValues UP-TO-DATE 
:generateDebugResources UP-TO-DATE 
:mergeDebugResources UP-TO-DATE 
:processDebugManifest UP-TO-DATE 
:processDebugResources UP-TO-DATE 
:generateDebugSources UP-TO-DATE 
:compileDebugJava 
Note: Resolve log file to <my_home>/AndroidStudioProjects/ChessPositionManagerAndroid/build/source/apt/androidannotations.log 
Note: 18:29:17.724 [Daemon Thread 16] INFO o.a.AndroidAnnotationProcessor:86 -  Initialize AndroidAnnotationProcessor with options {androidManifestFile=[<my_home>/AndroidStudioProjects/ChessPositionManagerAndroid/build/intermediates/manifests/full/debug/AndroidManifest.xml]} 
Note: 18:29:17.869 [Daemon Thread 16] INFO o.a.AndroidAnnotationProcessor:117 - Start processing for 1 annotations on 8 elements 
Error:18:29:17.885 [Daemon Thread 16] ERROR o.a.h.AndroidManifestFinder:95 - Could not find the AndroidManifest.xml file in specified path : [<my_home>/AndroidStudioProjects/ChessPositionManagerAndroid/build/intermediates/manifests/full/debug/AndroidManifest.xml] 
Note: 18:29:17.886 [Daemon Thread 16] INFO o.a.p.TimeStats:81 - Time measurements: [Whole Processing = 17 ms], [Extract Annotations = 13 ms], [Extract Manifest = 3 ms], 
Note: 18:29:17.887 [Daemon Thread 16] INFO o.a.AndroidAnnotationProcessor:131 - Finish processing 
Note: 18:29:17.954 [Daemon Thread 16] INFO o.a.AndroidAnnotationProcessor:117 - Start processing for 0 annotations on 0 elements 
Note: 18:29:17.954 [Daemon Thread 16] INFO o.a.p.TimeStats:81 - Time measurements: [Whole Processing = 0 ms], 
Note: 18:29:17.955 [Daemon Thread 16] INFO o.a.AndroidAnnotationProcessor:131 - Finish processing 
Warning:Unclosed files for the types '[dummy1412872157721]'; these types will not undergo annotation processing 
1 warning 
Error:Execution failed for task ':compileDebugJava'. 
> Compilation failed; see the compiler error output for details. 
Information:BUILD FAILED 
Information:Total time: 3.981 secs 
Information:2 errors 
Information:1 warning 
Information:See complete output in console 

मैं अगर कभी मेरी त्रुटि भी स्पष्ट है माफी माँगता हूँ चाहते हैं, लेकिन मैं के लिए मांग किया गया है सफलता के बिना कुछ घंटे।

उत्तर

30

आप उपयुक्त के लिए कुछ config जोड़ने की कोशिश की है:

dependencies { 
     ... 
     classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4' 
    } 

    apply plugin: 'android-apt' 

    apt { 
     arguments { 
      androidManifestFile variant.processResources.manifestFile 
      resourcePackageName '<your package>' 
     } 
    } 
+0

का समाधान हो जाएगा मैं जोड़ने के लिए कोशिश की है अपने सुझाव (मेरे पैकेज के साथ प्रतिस्थापित) लेकिन मुझे त्रुटि मिली "असमर्थित ग्रैडल डीएसएल विधि मिली: apt()"। और "प्लगइन लागू करें: एपीटी" मुझे एक और त्रुटि में मिला (प्लगइन नहीं मिला) – loloof64

+1

मैंने अपना जवाब अपडेट किया है, सुनिश्चित करें कि आप प्लगइन के रूप में एंड्रॉइड-एपीटी का उपयोग करें – brwngrldev

+0

मेरी स्क्रिप्ट अपडेट की गई: मुझे त्रुटि मिली "कोई ऐसी संपत्ति नहीं: प्रोजेक्ट पर निर्भरता कक्षा के लिए: com.android.build.gradle.internal.api.AplicationVariantImpl_Decorated " – loloof64

4

अपने buid.gradle (मॉड्यूल स्तर Gradle) के अंदर प्लगइन लागू फाइल यह

apply plugin: 'android-apt' 
संबंधित मुद्दे