1

我目前正在为android创建一个支付SDK,因此我想根据不同的情况将一些图像从sdk/library项目发送到实际应用程序。我希望应用程序的用户使用drawable,但我不希望他们手动设置(即直接从SDK的drawable文件夹中获取),SDK应该根据不同的情况自动选择要使用的图像。

目前我所拥有的是一个 DAO 类,它在初始化时具有以下内容:

case (MASTERCARD):
    this._logo = getResources().getDrawable(R.drawable.mastercard_securecode);

然后在应用程序中,我希望能够获取该可绘制对象并在 ImageView 中使用它,如下所示:

img.setImageDrawable(DAOObject.getLogo());

但是,当我运行这个时,我得到

06-15 20:25:18.933: W/dalvikvm(625): VFY: 无法解析 LPackagePath/R$drawable 中的静态字段 6 (mastercard_securecode);

后跟一个空指针异常,因为 getLogo 将由于上述错误返回 null。

任何人都知道如何正确实现这一点,所以我没有得到上述错误,并且仍然能够以这种方式实现它,应用程序可以这样动态发送可绘制对象?

任何帮助深表感谢!

4

1 回答 1

1

好的,所以我终于想通了。

问题确实是上下文。我需要将应用程序中的上下文传递到 SDK 中,然后我可以通过执行正确获取图像

context.getResources().getDrawable(R.drawable.mastercard_securecode);

其次,我需要在库项目中导入 jar 文件,然后在第二个库项目中导入图像,以便 SDK 本身是封闭源代码,但我仍然有可用的资源。

于 2012-06-20T12:49:59.303 回答