aichingm
aichingm

Reputation: 796

android-studio can't find an aidl interface for use in class

I have an interface defined in the aidl but I can't extend it or find it any way. The ide just tells me: Can not resolve symbol 'KeyEventListener' Any idea how to fix this?

Additional infos:

I know android-studio is some thing like a pre-alfa but like it very much and would be very happy if some one could halp me out on this!

enter image description here

Upvotes: 14

Views: 18756

Answers (4)

zomega
zomega

Reputation: 2326

If it's 2023 and you switched from gradle 7 to 8 then I might have a fix.

There is a gradle property called buildFeatures.aidl. It needs to be true to compile aidl files. In gradle version 7 the default is true. But the default has been changed to false in gradle 8.

So if your aidl file is in the default app module you need to edit app/build.gradle. Please don't copy/paste but put the line "aidl true" at the right place in your file instead. The hierarchy is like this:

android {
    buildFeatures {
        aidl true
    }
}

Upvotes: 25

Nicks
Nicks

Reputation: 16317

Created a directory aidl under src/main.

Then created the new aidl file package structure and moved aidl file into it.

Rebuilt and it was done.

I followed this post

Upvotes: 4

Naruto Uzumaki
Naruto Uzumaki

Reputation: 2087

In my case Clean and Rebuild project solved my problem.

Upvotes: 18

blixtra
blixtra

Reputation: 161

You are probably best off having a look at The Gradle Plugin User Guide for Android.

Gradle, by default, requires a particular directory structure. If you want to use Gradle with a directory structure that most Android devs are accustomed to, you'll need to put the following (from the above-mentioned link) inside the "android" block.

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

After you've done this, do a clean and rebuild to be on the safe side.

Personally, I just adapt my projects to fit the new convention.

Upvotes: 12

Related Questions