2017-09-06 22 views
0

Java編譯器不保留任何接口的參數名稱,除非使用較新的編譯器選項-parameter(我不確定如何在android studio中使用它) - 請參考下面的示例。Android Studio - 實現方法和參數名稱

由於java編譯器不保存參數名稱,因此Android Studio「代碼 - >實現方法」無法使用原始參數名稱生成代碼。

問題是,如何實現一個庫模塊,以便Android Studio Menu,Code-> Implement Methods能夠正確生成包含所有原始參數名稱的代碼。

例如,以下是一個簡單的類和一個接口。這個課程在一個單獨的模塊中。當應用程序使用此AAR時,實現TablaListener並要求AndroidStudio生成接口方法存根,參數名稱不會保留。

請注意,不使用proguard。

任何想法?

public class TablaCore { 

    public interface TablaListener { 
     /** 
     * @param params 
     * @param data 
     * @return 
     */ 
     boolean TablaCore_onAction(String params, byte[] data); 
    } 

    private static TablaListener mListener = null; 
    public static void setListener(TablaListener myListener) { 
     mListener = myListener; 
    } 

    public TablaListener getListener() { 
     return mListener; 
    } 

} 

通過編譯和反編譯以上類很容易。這是反編譯版本

public class TablaCore 
{ 
    private static TablaListener mListener = null; 

    public static void setListener(TablaListener myListener) 
    { 
    mListener = myListener; 
    } 

    public TablaListener getListener() 
    { 
    return mListener; 
    } 

    public static abstract interface TablaListener 
    { 
    public abstract boolean TablaCore_onAction(String paramMessageParams, byte[] paramArrayOfByte); 

    } 
} 

回答

0

您必須包含Android SDK源代碼。

轉到:文件>設置...>外觀&行爲>系統設置> Android的SDK

在標籤SDK平臺選擇顯示封裝詳情,找到並選擇適當的來源爲Android XX。不幸的是,目前對於Android API 27來說,沒有消息來源,但是對於Android 26來說有。應用更改 - 下載窗口應自動出現。

Android SDK screenshot

下載和重新啓動的實現方法應該使用方法的參數的正確名稱後。

相關問題