Android AIDL文件未生成Java文件

Android AIDL文件未生成Java文件,android,service,interface,aidl,Android,Service,Interface,Aidl,我已经定义了一个AIDL android界面,以便从其他应用程序提供服务 我的问题是,在我的项目中,Android没有从这个AIDL生成Java文件。 请注意,该项目编译并运行良好。但是,如果我将这个AIDL文件移动到另一个项目,Android将生成Java文件 我不知道在哪里可以调试这种错误,也不知道在哪里可以阅读一些关于这种错误的日志 有人能帮我吗?尝试清理项目,这通常有助于解决这些类型的错误。还要检查它是否不包含错误,因为错误可能会阻止某些编译步骤的完成 假设您使用Eclipse,请查看“

我已经定义了一个AIDL android界面,以便从其他应用程序提供服务

我的问题是,在我的项目中,Android没有从这个AIDL生成Java文件。 请注意,该项目编译并运行良好。但是,如果我将这个AIDL文件移动到另一个项目,Android将生成Java文件

我不知道在哪里可以调试这种错误,也不知道在哪里可以阅读一些关于这种错误的日志


有人能帮我吗?

尝试清理项目,这通常有助于解决这些类型的错误。还要检查它是否不包含错误,因为错误可能会阻止某些编译步骤的完成


假设您使用Eclipse,请查看“控制台”视图(窗口>显示视图>控制台),该视图应包含编译过程的输出。

Eclipse直接在
.aidl
文件中显示错误,因此请先检查您的文件。 我遇到了类似的问题,并发现了我的问题:我在接口函数前面加了
public
。那是错误的。例如:

package com.example.phone.service;

interface IService {
    public void placeCall(String a, in String b, in String c);
}
应该是:

package com.example.phone.service;

interface IService {
    void placeCall(String a, in String b, in String c);
}

别忘了
.java
生成的文件位于
gen/
not
src/

如果根据您尝试创建接口的位置,转到其中一个父目录,例如framework/base/您将找到该目录的make文件,名为Android.mk
在这个文件中,您应该在适当的位置添加.aidl名称(由于注释,很容易理解确切的位置),然后构建。将生成“您的接口”.java。

我遇到了类似的问题。使用Android Studio,文件必须位于特定位置,除非您在Gradle中重写它


我不得不将aidl文件放在“src/main/aidl/example/package/name/”中我遇到了同样的问题,在Android Studio上工作得很好。有两种方法可以解决这个问题

方法1:

将AIDL文件放在src/main/AIDL包下,以遵循gradle构建的默认源设置

这是一个简单的方法,但不是聪明的

方法2:

  • 将aidl文件保存在自定义包下

  • 在build.gradle文件中添加源设置映射,如下所示

    sourceSets {
       main {
         aidl.srcDirs = ['src/main/java']
       }
    }
    
  • 不要忘记按上述设置后的清理和重建。

    更多信息请参考此


    是的。我正在使用Eclipse。控制台提供的反馈正常。它没有告诉我任何关于aidl转换的信息。嗯,如果没有错误,那么构建过程不会获取aidl文件。也许它在错误的地方,或者你把项目的配置搞砸了。右键单击资源管理器中的项目>Android工具>修复项目属性-可能会有所帮助。如果你不能让它工作,你也可以在一个不工作的项目的基础上创建一个新的项目。嗨,我尝试了所有的方法,但都解决了问题。我安装了另一个Eclipse,Android SDK,并生成了文件。我只定义了一个类,Eclipse说:“;”之前的语法错误(预期的方法声明)
    public void placeCall(字符串accountID,在字符串callID中,在字符串to中)你的最后一行是金色的。整个上午都在寻找它。在studio中从哪里获得.java?