在 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 不是“变量”。它是ActivityService 和类似组件的属性,因此只能从它们那里获得。 我在片段中调用它 然后使用requireContext().applicationContextrequireActivity().application。我不熟悉 Android,所以我不确定为什么以及何时上下文/活动可能为空。 【参考方案1】:

这就是我解决问题的方法:

appContainer = (requireActivity().application as App).appContainer

【讨论】:

以上是关于在 Android 中找不到应用程序变量的主要内容,如果未能解决你的问题,请参考以下文章

在为arm64 Android手机构建应用程序包时,在ApplicationInfo.nativeLibraryDir中找不到本机库

不断收到“在 PATH 中找不到程序 python”

在 Android 中找不到位置提供程序

Flutter:在根项目“android”中找不到任务“assembleStageDebug”

在 API 级别 28 中找不到 Canvas 变量

requireNativeComponent:运行android应用程序时在UIManager中找不到“RNSScreenStackHeaderConfig”