Android 从Gradle上的辅助模块获取资源

Android 从Gradle上的辅助模块获取资源,android,android-studio,android-gradle-plugin,Android,Android Studio,Android Gradle Plugin,我正试图从Android Studio上的辅助模块中获取一些R.string资源。我有两个不同的模块。我可以将application上下文传递到我的secundary模块,以便调用getString(R.string…)方法 两个字符串文件上的字符串相同。但是没有一个是我可以接受的。这就是我在第二模块中所做的: Resources.getSystem().getString(R.string.infraestructura); 当我使用从主模块接收的上下文时,我得到了相同的结果: cx.ge

我正试图从Android Studio上的辅助模块中获取一些
R.string
资源。我有两个不同的模块。我可以将application上下文传递到我的secundary模块,以便调用
getString(R.string…)
方法

两个字符串文件上的字符串相同。但是没有一个是我可以接受的。这就是我在第二模块中所做的:

 Resources.getSystem().getString(R.string.infraestructura);
当我使用从主模块接收的上下文时,我得到了相同的结果:

cx.getString(R.string.infraestructura);
当我在那里导入辅助模块
R.string
文件时,出现异常:

  java.lang.RuntimeException: Unable to start activity ComponentInfo{es.mycompany.sima/es.mycompany.sima.HomeActivity}: android.content.res.Resources$NotFoundException: String resource ID #0x7f0b0047
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2331)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2389)
        at android.app.ActivityThread.access$900(ActivityThread.java:169)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5479)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
        at dalvik.system.NativeStart.main(Native Method)
 Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x7f0b0047
当我尝试导入main
R.string
文件时,我在编译期间遇到错误:

Error:(9, 21) error: package es.mycompany.sima does not exist <-- Import line
Error:(32, 125) error: package R does not exist <-- Reference to R

错误:(9,21)错误:包es.mycompany.sima不存在您不能直接访问数据。您需要使用内容提供商在应用程序之间共享任何数据。如果将第二个模块用作库,请正确检查生成路径,并通过查看导入确保R指向正确的模块

Resources.getSystem().getString(R.string.Infrastructure)
仅适用于系统资源(android.R.string…)

从辅助模块中,由于周期性依赖(app->sub-module&&sub-module->app),您通常不会调用应用程序模块的字符串资源

从应用程序模块中,您应该能够引用子模块字符串资源,如下所示:
getString(package.ofsubmodule.R.string.string\u name)


根据调用
cx.getResources或cx.getString的位置以及使用或传递它的方式,它可能引用应用程序或子模块的资源,您需要显示更多的代码才能计算出来。

两个模块都编译到一个应用程序中