Android annotations in Android Studio: cannot find existing file

I am trying to develop an app with AndroidStudio (0.8.9), Gradle (2.1) and Android Annotations 3.0.

Normal Gradle sync happens without issue.

But as soon as I try to make the project, I get a weird error: It says that AndroidManifest.xml cannot be found in the / build subdirectory even though this file does exist.

Here's the Gradle output when trying to do make:

Executing tasks: [: compileDebugSources]
Parallel execution with configuration on demand is an incubating feature.* * * * * * * * * * * * * * * * * * * * * * * * * * * *
variant: debug
manifest: [/home/laurent - bernabe / AndroidStudioProjects / ChessPositionManagerAndroid / build / intermediates / manifests / full / debug / AndroidManifest.xml]
aptOutput: /home/laurent - bernabe / AndroidStudioProjects / ChessPositionManagerAndroid / build / source / apt / debug * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
variant: release
manifest: [/home/laurent - bernabe / AndroidStudioProjects / ChessPositionManagerAndroid / build / intermediates / manifests / full / release / AndroidManifest.xml]
aptOutput: /home/laurent - bernabe / 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 / home / laurent - bernabe / AndroidStudioProjects / ChessPositionManagerAndroid / build / generated / source / apt / androidannotations.log
Note: 21: 15: 51.226[Daemon Thread 2] INFO o.a.AndroidAnnotationProcessor: 86 - Initialize AndroidAnnotationProcessor with options {
    androidManifestFile = [/home/laurent - bernabe / AndroidStudioProjects / ChessPositionManagerAndroid / build / intermediates / manifests / full / debug / AndroidManifest.xml], resourcePackageName = com.loloof64.android.chs_pos_mngr
}
Note: 21: 15: 51.493[Daemon Thread 2] INFO o.a.AndroidAnnotationProcessor: 117 - Start processing
for 1 annotations on 8 elements
error: 21: 15: 51.541[Daemon Thread 2] ERROR o.a.h.AndroidManifestFinder: 95 - Could not find the AndroidManifest.xml file in specified path: [/home/laurent - bernabe / AndroidStudioProjects / ChessPositionManagerAndroid / build / intermediates / manifests / full / debug / AndroidManifest.xml]
Note: 21: 15: 51.542[Daemon Thread 2] INFO o.a.p.TimeStats: 81 - Time measurements: [Whole Processing = 49 ms],
[Extract Annotations = 44 ms],
[Extract Manifest = 3 ms],
Note: 21: 15: 51.543[Daemon Thread 2] INFO o.a.AndroidAnnotationProcessor: 131 - Finish processing
Note: 21: 15: 51.760[Daemon Thread 2] INFO o.a.AndroidAnnotationProcessor: 117 - Start processing
for 0 annotations on 0 elements
Note: 21: 15: 51.760[Daemon Thread 2] INFO o.a.p.TimeStats: 81 - Time measurements: [Whole Processing = 0 ms],
Note: 21: 15: 51.761[Daemon Thread 2] INFO o.a.AndroidAnnotationProcessor: 131 - Finish processing
warning: Unclosed files
for the types '[dummy1413746151186]';
these types will not undergo annotation processing
1 error
1 warning
FAILED
FAILURE: Build failed with an exception.*What went wrong: Execution failed
for task ':compileDebugJava'. > Compilation failed;
see the compiler error output
for details.*Try: Run with--stacktrace option to get the stack trace.Run with--info or--debug option to get more log output.
BUILD FAILED
Total time: 9.216 secs

      

Here is my Gradle script:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.13.2'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'android-apt'
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')
    }
}
apt {
    arguments {
        androidManifestFile variant.outputs.processResources.manifestFile
        resourcePackageName 'com.loloof64.android.chs_pos_mngr'
    }
}
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()
    }
}

      

Here is my manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.loloof64.android.chs_pos_mngr"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.Base.AppCompat.Light.DarkActionBar">
        <activity
                android:name="com.loloof64.android.chs_pos_mngr.activities.PositionActivity_"
            android:label="@string/title_activity_position"
            android:uiOptions="splitActionBarWhenNarrow">
            <meta-data android:name="android.support.UI_OPTIONS"
                android:value="splitActionBarWhenNarrow" />
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

      

+3


source to share


1 answer


Finally I found a solution, thanks to yDelouis, which took me along the way:

I also have to remove in the gradle script the commented line below:



apt {
    arguments {
        //androidManifestFile variant.outputs.processResources.manifestFile
        resourcePackageName 'com.loloof64.android.chs_pos_mngr'
    }
}

      

+1


source







All Articles