Intellij Idea android-studio找不到在类中使用的aidl接口

wrrgggsh  于 2023-10-15  发布在  Android
关注(0)|答案(4)|浏览(152)

我在aidl中定义了一个接口,但我无法扩展它或以任何方式找到它。IDE只是告诉我:**无法解析符号“KeyEventListener”**有任何解决方法吗?
其他信息:

  • KeyEvents.aidl中定义的接口的名称
  • KeyEventListenerImpl是扩展Stub接口的类
  • KeyEventObject只包含一个名为'void doIt();',并且格式良好;

我知道android-studio有点像阿尔法之前的东西,但我非常喜欢它,如果有人能帮我解决这个问题,我会非常高兴!

km0tfn4u

km0tfn4u1#

在我的例子中,CleanRebuild项目解决了我的问题。

8iwquhpp

8iwquhpp2#

你可能最好看看Android的Gradle插件用户指南。
默认情况下,Gradle需要特定的目录结构。如果您想使用Gradle和大多数Android开发人员习惯的目录结构,您需要将以下内容(来自上述链接)放入“android”块中。

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

在你做了这些之后,为了安全起见,做一个清理和重建。
就个人而言,我只是调整我的项目,以适应新的公约。

n3h0vuf2

n3h0vuf23#

如果现在是2023年,你从7年级转到8年级,那么我可能会有一个解决方案。
有一个名为buildFeatures.aidl的gradle属性。编译aidl文件需要true。在gradle版本7中,默认值为true。但在gradle 8中,默认值已更改为false。
因此,如果您的aidl文件位于默认的app模块中,则需要编辑app/build.gradle。请不要复制/粘贴,而是将行“aidl true”放在文件中的正确位置。层次结构是这样的:

android {
    buildFeatures {
        aidl true
    }
}
jrcvhitl

jrcvhitl4#

在src/main下创建了一个目录aidl。
然后创建新的aidl文件包结构,并将aidl文件移入其中。
重建,它已经完成了。
I followed this post

相关问题