Android Studio - 实现方法和参数名称

时间:2017-09-06 11:30:03

标签: android android-studio

Java编译器不保留任何接口的参数名称,除非使用更新的编译器选项-parameter(我不知道如何在android studio中使用它) - 请参阅下面的示例。

由于java编译器不保留参数名称,因此Android Studio"代码 - >实施方法"无法使用原始参数名称生成代码。

问题是,如何实现库模块,以便Android Studio菜单,Code->实现方法正确生成包含所有原始参数名称的代码。

例如,以下是一个简单的类和一个接口。这个类在一个单独的aar模块中。当应用程序使用此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);

  }
}

1 个答案:

答案 0 :(得分:0)

您必须包含Android SDK源代码。

转到:文件>设置...>外观和行为>系统设置> Android SDK

在标签 SDK平台上,选择显示包详情,然后查找并选择适当的 Android XX来源。不幸的是,目前针对Android API 27,没有消息来源,但有针对Android 26的 Sources 。应用更改 - 下载窗口应自动显示。

Android SDK screenshot

下载并重新启动实现方法后,应使用方法参数的专有名称。