我制作了一个带有某些接口(interface)的库(github上的HybridMediaPlayer)。当我从gradle中将其导入新项目并使用这些接口(interface)时,我得到了更改的参数名称,例如:

player.setOnPositionDiscontinuityListener(new ExoMediaPlayer.OnPositionDiscontinuityListener() {
     @Override
     public void onPositionDiscontinuity(int i, int i1) {

     }
});

其中“i”是“原因”,“i1”是“currentWindowIndex”。
为什么在其他项目中更改了它,以及如何解决? Proguard已禁用。

最佳答案

我认为这是因为在Maven repo上仅存在一个Android存档库(AAR),并且没有源jar。 AAR仅包含已编译的类,而在已编译的类中,完整的变量名不再是已知的。因此,当您的IDE实现该方法时,它不再知道名称,因此它默认为基于参数类型的标准命名(因此,i表示整数)。

如果您想要正确的变量名,则应该将项目的源jar也发布到Jitpack存储库中。 This答案可能提供一种在AAR旁边发布源jar的方法。当还发布了源jar时,IDE还将使用Gradle将源jar拖入项目中,并在实现方法以获取参数名称等时使用它。

09-16 04:17