Android Studio java.lang.NoSuchMethodError:没有静态方法"myMethod"

mzillmmw  于 2023-02-09  发布在  Android
关注(0)|答案(3)|浏览(203)

我有一个扩展方法:

fun StoresClientFragment?.onClickButtonBack(){
   this?.listener?.onStoresFragmentClickBtnMenu()
}

应用程序安装没有任何错误;但是当在运行时调用该方法时,它会给出以下错误:
java.lang.NoSuchMethodError:没有静态方法在点击按钮返回(Lcom/app/common_client/ui/fragment/stores/StoresClientFragment;)类Lcom/应用程序/公共客户端/公共/公共应用程序类型组Kt中的V;或其超类("com. app. common_client. commons. CommonsAppTypeGroupKt"的声明出现在/data/app/com. myapp. client-DWp0y3iNC3tsmBZkowlpfw = =/base. apk!类2.dex中)。
我启用了多联
在Gradle版本中

android {
    defaultConfig {
        multiDexEnabled = true
    }
}

dependencies {
   implementation 'androidx.multidex:multidex:2.0.1'
}

在应用程序类中

class ApplicationClient : MultiDexApplication(){
}

在宣言中

<application
        android:name=".commons.application.ApplicationClient"
    • 注意:我使用的是产品风味和模块,该方法位于某些产品风味共享的src中**
sourceSets {
         flavorA {
             java.srcDirs + = "src/sharedFolder/java" //here is 'onClickButtonBack' method
         }
         flavorB {
             java.srcDirs + = "src/sharedFolder/java"
         }
}
kd3sttzy

kd3sttzy1#

Build -> Rebuild Project帮了我,好像是Android Studio代码缓存的bug

6psbrbz9

6psbrbz92#

我已经解决了这个问题,但是我不知道为什么,我做的唯一一件事就是改变方法所在的文件名。

我的文件.kt由我的新文件.kt创建

fun StoresClientFragment? .onClickButtonBack () {
     this? .listener? .onStoresFragmentClickBtnMenu ()
}

我希望它能帮助正在经历同样事情的人,我也想如果有人知道为什么这样做有效,分享它,谢谢

rm5edbpk

rm5edbpk3#

我在我的案例中解决了这个问题,因为我改变了它试图从中获取方法的文件的包。
我的设置是2个Kotlin模块(A依赖于B)。两者都有相同的包名和类。当我试图从A使用B.method()时,它似乎试图调用A.method()。
我不是这方面的Maven我注意到了

相关问题