AIDL文件未生成Java文件

pab*_*.mj 5 service android interface aidl

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

我的问题是,在我的项目中,Android不会从此AIDL生成Java文件.请注意,项目编译并正常工作.但是,如果我将此AIDL文件移动到另一个项目,Android将生成Java文件.

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

有谁能够帮我?

Lun*_*ong 8

我遇到了同样的问题并且在 Android Studio 上工作正常。有两种方法可以解决这个问题。

方法一:

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

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

方法二:

  1. 将 aidl 文件保存在您的自定义包下。

  2. 在 build.gradle 文件中添加源设置映射如下

    sourceSets {
       main {
         aidl.srcDirs = ['src/main/java']
       }
    }
    
    Run Code Online (Sandbox Code Playgroud)

如上所述设置后,不要忘记清理和重建。

更多信息请参考这里,

https://issuetracker.google.com/issues/36972230

https://issuetracker.google.com/issues/36972230

https://issuetracker.google.com/issues/36988483


m-r*_*ric 5

Eclipse会直接在.aidl文件中显示错误,因此请先检查您的文件.我遇到了类似的问题,发现了我的问题:我为我的界面功能添加了前缀public.那是错的.例如:

package com.example.phone.service;

interface IService {
    public void placeCall(String a, in String b, in String c);
}
Run Code Online (Sandbox Code Playgroud)

应该:

package com.example.phone.service;

interface IService {
    void placeCall(String a, in String b, in String c);
}
Run Code Online (Sandbox Code Playgroud)

不要忘记.java生成的文件gen/不在src/.

  • 你的最后一行是黄金.整个上午都在寻找它. (4认同)

bdu*_*bya 5

我遇到了类似的问题.使用Android Studio时,除非您在Gradle中覆盖该文件,否则该文件必须位于特定位置.

我必须将aidl文件放在'src/main/aidl/example/package/name /'中 - 在aidl文件中声明的包将是'package example.package.name'.

它要求文件位于特定的aidl文件夹中,并且文件夹结构与aidl中声明的包名称相匹配.我在这里找到了最初的提示:https://code.google.com/p/android/issues/detail?id = 56328


zap*_*apl 1

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

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