用AS很久了,也积累了很多使用经验。其中一条就是不要轻易升级最新版本,即便是稳定版!!!不然指不定整出什么幺蛾子来……
但是用3.5也推送了好多天,估摸着差不多该升级了……
所以今天把AS3.4升3.5了……
然后,果不其然,又出问题了:![[AS]AS 3.5 报错:解析时已到达文件结尾 - 图1](/uploads/projects/xshawn@aosp/eaebb6eec69733dcbeca0e901721c779.png)
编译详情:
> Task :FactoryTest:compileDebugJavaWithJavac FAILEDD:\Workspace\AS3\EmdoorApps\FactoryTest\build\generated\aidl_source_output_dir\debug\compileDebugAidl\out\com\emdoor\mesclient\FactoryMesClient.java:98: 错误: 解析时已到达文件结尾return super.onTransact(code, data, re^D:\Workspace\AS3\EmdoorApps\FactoryTest\build\generated\aidl_source_output_dir\debug\compileDebugAidl\out\com\emdoor\mesclient\FactoryMesClient.java:99: 错误: 解析时已到达文件结尾2 个错误FAILURE: Build failed with an exception.
打开这个文件检查吧,和之前一模一样,但就是build不过,怎么办?
// FactoryMesClient.aidlpackage com.emdoor.mesclient;import com.emdoor.mesclient.ResultListener;interface FactoryMesClient {//设置测试工站void setStation(String station);//上传log文件void uploadTestLog(String file, ResultListener listener);//上传测试结果void reportTestResult(boolean pass, String resultCode, ResultListener listener);//请求数据void requestBindingData(ResultListener listener);//请求状态void requestTestStatus(ResultListener listener);}
解决方法:
很简单,把注释信息都删掉就OK了。
这里,个人觉得注释信息问题,导致AIDL文件解析异常,但是具体是编码、换行符、空白符、转义字符,还是其它问题,就没有去研究了。
比如,Makefile里面,一行最后面如果是“ \”,那么在解析的时候,它后面的一行也会自动合并到当前行。
LOCAL_AAPT_FLAGS := \--auto-add-overlay \--extra-packages com.android.contacts.common \--extra-packages com.android.phone.common \--extra-packages android.support.design \--extra-packages android.support.transition \--extra-packages android.support.v7.appcompat \--extra-packages android.support.v7.cardview \--extra-packages android.support.v7.recyclerview
![[AS]AS 3.5 报错:解析时已到达文件结尾 - 图2](/uploads/projects/xshawn@aosp/500b887cb38a4102f835f947aab61209.png)
本文经「原本」原创认证,作者Shawn.XiaFei,访问yuanben.io查询【2ET0ZDB3】获取授权信息。
