Android studio 4.0 遇到的问题 BuildConfig.APPLICATION_ID和LocalBroadcastManager已被废弃

因为这个错误发生在library中,一般的项目应该不会出现这个错误。先截取看看,这里是在moudle里面

Android studio 4.0 遇到的问题 BuildConfig.APPLICATION_ID和LocalBroadcastManager已被废弃_第1张图片

这里报错信息,提示什么view的menuItem。这还没看懂,继续在控制台打印日志:

Android studio 4.0 遇到的问题 BuildConfig.APPLICATION_ID和LocalBroadcastManager已被废弃_第2张图片

输入以上内容:

Android studio 4.0 遇到的问题 BuildConfig.APPLICATION_ID和LocalBroadcastManager已被废弃_第3张图片

 

显示乱码的字显示出来了,提示了APPLICATION_ID 有几种可能,已经过时 啊,不安全操作啊但是因为引用的是第三方的,并不知道什么APPLICATION_ID是什么,就在这里折腾了很久,换了N种方法,都不得。

最后还是无意间看到了这个,贴上图片:

Android studio 4.0 遇到的问题 BuildConfig.APPLICATION_ID和LocalBroadcastManager已被废弃_第4张图片

这里已经提示不能用了,然后换了一种获取包名 的方法,解决了!于是也百度了一下,也是这个问题,这个配置的方法已经没有了。

在 library 中找不到 BuildConfig.APPLICATION_ID 的解决方案

Context.getPackageName() vs BuildConfig.APPLICATION_ID

 

这里都可以解决!!!

在接下来用的时候,又发现问题,,本地广播已经报红,没有这个包名奇怪。

 

Android studio 4.0 遇到的问题 BuildConfig.APPLICATION_ID和LocalBroadcastManager已被废弃_第5张图片

官网也解释了这个类已经被遗弃了:

Android studio 4.0 遇到的问题 BuildConfig.APPLICATION_ID和LocalBroadcastManager已被废弃_第6张图片

贴上百度翻译:英语水平很差

This class is deprecated.
LocalBroadcastManager is an application-wide event bus and embraces layer violations in your app: any component may listen events from any other. You can replace usage of LocalBroadcastManager with other implementation of observable pattern, depending on your usecase suitable options may be LiveData or reactive streams.

Helper to register for and send broadcasts of Intents to local objects within your process. This has a number of advantages over sending global broadcasts with Context.sendBroadcast(Intent):

You know that the data you are broadcasting won't leave your app, so don't need to worry about leaking private data.
It is not possible for other applications to send these broadcasts to your app, so you don't need to worry about having security holes they can exploit.
It is more efficient than sending a global broadcast through the system.

此类已弃用。

LocalBroadcastManager是一个应用程序范围的事件总线,它包含应用程序中的层冲突:任何组件都可以从任何其他组件侦听事件。您可以将LocalBroadcastManager的使用替换为observable模式的其他实现,具体取决于您的用例,合适的选项可能是LiveData或reactive streams。



帮助程序注册意图广播并将其发送到进程中的本地对象。与使用Context.sendBroadcast上下文.sendBroadcast(意图):



你知道你正在广播的数据不会离开你的应用,所以不必担心泄露私人数据。

其他应用程序不可能将这些广播发送到您的应用程序,因此您不必担心它们可能会利用安全漏洞。

它比通过系统发送全球广播更有效。

我这里直接用的广播就解决了!!

 

LocalBroadcastManager

你可能感兴趣的:(个人经历,Android,studio4.0)