在 Android 中找不到应用程序变量
Posted
技术标签:
【中文标题】在 Android 中找不到应用程序变量【英文标题】:Cannot find application variable to Application in Android 【发布时间】:2021-11-27 12:47:58 【问题描述】:我想使用手动依赖注入,我的意图是在片段中使用 Application 类来初始化对象,但 android Studio 找不到变量。我在清单中定义了应用程序的名称,但它显示未解析的引用:应用程序。这是sn-p:
<application
android:name=".di.App"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.BasicsApp">
class App : Application()
lateinit var appContainer: AppContainer
override fun onCreate()
super.onCreate()
appContainer = AppContainer()
appContainer = (application as App).appContainer
【问题讨论】:
你在哪里调用最后一个代码?application
不是“变量”。它是Activity
、Service
和类似组件的属性,因此只能从它们那里获得。
我在片段中调用它
然后使用requireContext().applicationContext
或requireActivity().application
。我不熟悉 Android,所以我不确定为什么以及何时上下文/活动可能为空。
【参考方案1】:
这就是我解决问题的方法:
appContainer = (requireActivity().application as App).appContainer
【讨论】:
以上是关于在 Android 中找不到应用程序变量的主要内容,如果未能解决你的问题,请参考以下文章
在为arm64 Android手机构建应用程序包时,在ApplicationInfo.nativeLibraryDir中找不到本机库
Flutter:在根项目“android”中找不到任务“assembleStageDebug”
requireNativeComponent:运行android应用程序时在UIManager中找不到“RNSScreenStackHeaderConfig”