最近有一个问题,困扰了很久都没有解决,就是在使用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文件夹下文件通通自动生成了。到此问题解决。
android项目中使用aidl时,无法自动生成java档的问题
最新推荐文章于 2023-02-23 15:18:15 发布