2017-09-06 24 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

下载和重新启动的实现方法应该使用方法的参数的正确名称后。

相关问题