zoukankan      html  css  js  c++  java
  • android项目中使用aidl时,无法自动生成java档的问题

    最近有一个问题,困扰了很久都没有解决,就是在使用aidl进行进程间通信时,我的开发环境无法自动在gen目录下生成java文件。
    我用的是ubuntu的操作系统。而同样的source在其他同事的开发环境下都是可以的。
    检查sdk开发包安装都没有问题,platform-tools文件夹下aidl的编译工具也安静的躺在那边,怎么就不工作呢?薪水太少??
    在android发布了4.1开发包以后,发现tools和platform-tools都有更新安装,于是想刚好趁这个机会看能不能把问题解决。
    于是更新安装最新的tools和platform-tools。clean一下project,重新build,竟然报错了,之前一直都没有报错的。
    第一感觉,完了!
    之前aidl无法自动生成java,可以从同事那边拷贝来用。现在项目报错,gen下面的所有文件都无法自动生成!!!
    难道要逼我重做开发环境?没办法。跟他拼了!!!于是在mac机上试做一个开发环境,安装最新版的SDK,同样的错误!!
    看来问题已经严重到即使我重做开发环境也不会解决的程度。狭路相逢,只有解决掉他了。
    报的错误是让我去看他workspace下的log。
     Failed to run com.android.ide.eclipse.adt.internal.build.AidlProcessor. Check workspace log for detail.
    于是,打开workspace/.metadata/.log
    !ENTRY com.android.ide.eclipse.adt 4 0 2012-08-23 11:09:52.961
    !MESSAGE Failed to run com.android.ide.eclipse.adt.internal.build.AidlProcessor. Check workspace log for detail.
    !STACK 0
    java.lang.NullPointerException
        at com.android.ide.eclipse.adt.internal.build.AidlProcessor.doCompileFiles(AidlProcessor.java:113)
        at com.android.ide.eclipse.adt.internal.build.SourceProcessor.compileFiles(SourceProcessor.java:244)
        at com.android.ide.eclipse.adt.internal.build.builders.PreCompilerBuilder.build(PreCompilerBuilder.java:638)
        at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:629)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:172)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:203)
        at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:255)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:258)
        at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:311)
        at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:343)
        at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144)
        at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:242)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
    于是到google上查找原因。有人有同样的问题,下面的解答中有下面这句话。
    I had this exact issue happen to me today. It turns out this happens when there are source folders in your project that do not actually exist.
    So verify in your project Java Build Path that all source folders actually exist. After removing a dead source folder link from there my project once again compiled the aidl.
    于是试着去看看我项目中有没有这样的文件夹,赫然发现有一个本项目依存的另一个项目名称的文件夹,里面是空。
    因为调试程式的原因,把本来jar文件的原始项目引进来,不知道怎么就生成了这么个文件夹。
    情况不会比现在更糟糕了,于是也不管他会不会用到,直接删除。
    报错不见了!!!gen文件夹下文件通通自动生成了。到此问题解决。

  • 相关阅读:
    编译Openmv固件&增加串口
    边缘 AI 平台的比较
    CVPR2021 | 重新思考BatchNorm中的Batch
    ICCV2021 |重新思考人群中的计数和定位:一个纯粹基于点的框架
    ICCV2021 | 重新思考视觉transformers的空间维度
    CVPR2021 | Transformer用于End-to-End视频实例分割
    漫谈CUDA优化
    AAAI 2021 最佳论文公布
    综述专栏 | 姿态估计综述
    为什么GEMM是深度学习的核心
  • 原文地址:https://www.cnblogs.com/sipher/p/2652196.html
Copyright © 2011-2022 走看看