编辑:
在进一步研究之后,问题实际上是:如何在应用程序的插件中包含AAR文件?
我正在编写一个插件,然后该插件由另一个应用程序加载。在这种情况下,我找不到资源。但是我可以访问所有课程。 如果我将插件变成独立的应用程序。我什至可以访问资源。
如果包含在插件中并加载到另一个应用程序中,如何使aar工作?
所以我知道有100万个这样的问题,但是似乎没有任何作用,所以也许我错过了一些东西。
我已将库添加到我的项目中
flatDir{ dirs "./aar" } // project gradle
implementation (name: "the_library_name", ext: "aar") // module gradle
我可以从库中访问任何Kotlin类
我无法从aar本身或引用aar的项目中访问任何资源
在我的项目中: Resouces $ NotFoundException:字符串资源ID ...
context.getString(R.string.some_string)
// R -> com.my_project.test.R
在我的库代码中: Resuces $ NotFoundException:资源ID类型#0x5无效
inflater.inflate(R.layout.some_layout,....)
// R -> com.my_library.name.R
在两种情况下,当尝试引用AAR的资源时代码均失败。但这有效:
com.my_library.name.LibraryClass()
a生成AAR错误吗?是否有采取特殊步骤以允许访问资源?我在我的应用程序中添加错了吗?
注意:该库是用kotlin编写的,该应用程序是kotlin和Java的组合。我正在从Kotlin类访问资源。不确定是否重要。
注意2:我首先在应用程序项目中启动了我的库-这意味着我可以在模块中看到库代码并更改代码。那也不行。资源也有问题。
注意3:该应用程序没有任何默认活动。它是另一个应用程序的插件。我认为这与不起作用有关。我尝试了一些“样本”项目,并且在那儿工作正常。
答案 0 :(得分:0)
回答这个问题,因为它似乎与AAR无关。看来第三方应用程序有问题,因为这种方法似乎在其他任何地方都可以使用。