Android Studio 3.5後AIDL編譯遇到的坑

由於公司換了筆記本,需要切換新的工作環境,於是安裝了AS最新的3.5.2版本,導入項目之前的代碼,build一下,發現報了一大堆問題。點進去發現,很多的AIDL文件在自動生成.java接口文件的時候,發生了異常,java文件只生成了一段,並不完整。
文件最後類似如下:

}
}
private static class Proxy implements com.coagent.proxy.navi.aidl.INaviProxyInterface
{
private android.os.IBinder mRemote;
Proxy(android.os.IBinder remote)
{
mRemote = remote;
}
@Override public android.os.IBinder asBinder()
{
return mRemote;
}
public java.lang.String getInterfaceDescriptor()
{
return DESCRIPTOR;
}
/**
         * 钃濈墮鏄惁宸茬粡鎵撳紑
        */
@Override public boolean isEnable() throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain();
android.os.Parcel _reply = android.os.Parcel.obtain();
boolean _result;
try {
_data.writeInterfaceToken(DESCRIPTOR);
mRemote.transact(Stub.TRANSACTIO

仔細查看文件發現,裏面出現了一些中文亂碼的現象,於是去翻看項目中AIDL原始文件,果然,有很多AIDL文件裏面都寫了很詳細的中文註釋(同事走心了)!由於之前的編譯環境是可以正確編譯通過的,所以沒有出現此類問題;現在新的AS版本配上新的gradle版本,就出問題了。趕緊手動清除中文註釋之後,果然編譯通過了。
在這裏也建議大家,如果英文水平還可以的話,儘量使用英文註釋,可以避免一些亂碼的坑。去年我們的一個項目,由於客戶會關注代碼,於是提了一個要求:所有註釋必須使用英文!所以嘛,大家還是可以試着用英文註釋哦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章