【问题标题】:AIDL file does not generated a Java fileAIDL 文件不生成 Java 文件
【发布时间】:2012-09-13 17:18:28
【问题描述】:

我已经定义了一个 AIDL android 接口来提供来自其他应用程序的服务。

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

我不知道在哪里可以调试这种错误或在哪里可以阅读有关此的日志。

谁能帮帮我?

【问题讨论】:

  • 我只定义了一个类,eclipse说:';'之前的语法错误(预期方法声明)public void placeCall(String accountID, in String callID, in String to);

标签: android service interface aidl


【解决方案1】:

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

方法一:

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

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

方法二:

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

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

    sourceSets {
       main {
         aidl.srcDirs = ['src/main/java']
       }
    }
    

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

更多信息请参考这里,

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

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

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

【讨论】:

    【解决方案2】:

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

    我必须将aidl文件放在'src/main/aidl/example/package/name/'

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

    【讨论】:

      【解决方案3】:

      如果您根据尝试创建接口的位置(例如 framework/base/)转到父目录之一,您将找到该目录的 make 文件,名为 Android.mk 在这个文件中,您应该在适当的位置添加 .aidl 名称(感谢 cmets,很容易准确地理解在哪里),然后构建。将生成“你的界面”.java。

      【讨论】:

        【解决方案4】:

        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/而不是src/。

        【讨论】:

        • 你的最后一行是金色的。整个上午都在寻找它。
        • 在哪里可以得到 .java 在工作室?
        【解决方案5】:

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

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

        【讨论】:

        • 是的。我正在使用 Eclipse。控制台提供的反馈是正常的。它并没有告诉我关于辅助转换的任何信息。
        • 嗯,如果没有错误,则构建过程不会获取aidl文件。也许它在错误的地方,或者您以某种方式弄乱了项目的配置。在资源管理器中右键单击项目 > Android 工具 > 修复项目属性 - 可能会有所帮助。如果你不能让它工作,你也可以基于那个不工作的项目创建一个新项目。
        • 您好,我尝试了所有方法,但都解决了问题。我安装了另一个 Eclipse,Android SDK,文件就生成了。
        猜你喜欢
        • 1970-01-01
        • 2018-08-08
        • 1970-01-01
        • 2013-01-14
        • 2011-04-16
        • 1970-01-01
        • 2013-07-22
        • 1970-01-01
        相关资源
        最近更新 更多