从另一个提供循环依赖的模块打开活动

Posted

技术标签:

【中文标题】从另一个提供循环依赖的模块打开活动【英文标题】:Open Activity From Another Module Giving Circular Dependency 【发布时间】:2021-02-04 01:11:25 【问题描述】:

我正在开发必须调用位于主模块中的 Activity 的 android 应用程序。我面临的问题是,包含片段的子模块无法访问主模块中的活动。 我刚刚看到这些帮助链接,但无法解决访问主模块活动的问题..

这是我调用父模块的模块中的片段类..

        Intent intent = new Intent(getActivity(), QRScannedResultActivity.class);

        intent.putExtra("sendedscannedcontent", resultString);
        startActivity(intent);

我调用 main 的函数图像

模块层次结构看起来像

在 Gradle 中添加 implementation project(path:':app') 后会出现循环依赖错误

【问题讨论】:

【参考方案1】:

您可以使用Class.forName() 获取QRScannedResultActivity 类引用

假设QRScannedResultActivitycom.maximus.technologies.view包中,如果不是则替换包路径

try 
    Intent intent = new Intent(getActivity(), 
    Class.forName("com.maximus.technologies.views.QRScannedResultActivity"));
    intent.putExtra("sendedscannedcontent", resultString);
    startActivity(intent);
 catch (ClassNotFoundException e) 
    e.printStackTrace();

【讨论】:

正是我的 QRScannedResultActivity 在主模块中,我想从子模块中打开它 此代码未打开我要打开的活动 @UsmanAli 你检查Class.forName 中的包路径是否与QRScannedResultActivity 的包路径匹配?此代码是否打开了另一个不是您要打开的活动的活动,还是什么都不打开? 循环依赖错误 它什么都没有打开,直到我在另一个模块中添加实现项目(路径:':应用程序')但添加它之后它给出了循环依赖错误

以上是关于从另一个提供循环依赖的模块打开活动的主要内容,如果未能解决你的问题,请参考以下文章

(节点:15867)警告:在循环依赖中访问模块导出的不存在属性“cat”

C++20 模块“循环依赖”

sbt:模块之间的循环依赖?

如何正确处理 Python 中的循环模块依赖关系?

Haskell - 解决循环模块依赖

CommonJS / RequireJS - 循环模块依赖