我正在使用
的gradle依赖项implementation 'com.google.android.gms:play-services-location:15.0.1'
在运行时我遇到错误
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/location/LocationRequest;
我正在尝试使用LocationRequest来获取经时,当我在一个独立项目中使用此代码时,它可以工作。而且,当我尝试使用相同的代码构建库时,出现了上述错误。
我已经检查过,独立项目和库项目都具有相同的依赖项和版本。
答案 0 :(得分:0)
这可能是由于 2个原因
第一个可能的原因
直接使用该库时,在build.gradle中使用了implementation
方法。
因此,您可以直接在 简单应用模块 中使用它。
将其移至 您的库 并使用与该位置库相同的implementation
选项的该位置库 只能由您的图书馆使用。 应用模块不能使用和 ,其中您已经使用您的库
尝试{strong}替换{strong} implementation
,以api
替换这样的位置库
api 'com.google.android.gms:play-services-location:15.0.1'
有关更多详细信息,请参阅此帖子以了解实现与api-Here
第二个可能的原因
正如您在评论中提到的,它是运行时错误
根据我的观点,这可能是由于 ProGuard造成的混淆
添加该类以保持ProGuard规则
-keep class com.google.android.gms.location.** { *; }
因此,这将停止混淆该位置请求类
答案 1 :(得分:0)
代码现在可以进行以下更改(我仍在寻找爆炸)
在库gradle中编辑为以下依赖项
compileOnly "com.google.android.gms:play-services-location:15.0.1"
并在依赖项下方添加的应用程序gradle文件中
runtimeOnly 'com.google.android.gms:play-services-location:11.6.0'
P.S adityakamble49在主题中的回答也有所帮助。请尝试该方法,以使其适合您的情况。