我创建了2个项目1是Lib,第二个是Test。Lib项目需要保存一些数据,并且应该共享首选项(没有其他选择)。Lib项目是一个jar,因此其中没有任何上下文内容。
根据我的理解,这与上下文有关。通过静态方法访问SharedPreferences
因此,我创建了在Lib Project中扩展Application的Class。这是单例课程。我在Lib App维护文件中声明以下内容
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:name="com.test.manager.LibApp" >
</application>
然后,我将该完整项目作为lib添加到我的实际项目(testApp)中。当我尝试运行时,出现空指针异常。
问题是您在Lib清单文件中声明了该应用程序的存在(该文件已被完全忽略)。您需要移动:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:name="com.test.manager.LibApp" >
</application>
进入您的testApp清单。
长话短说,上下文不能源自JAR文件,它必须来自利用库的应用程序。这意味着您必须将应用程序的上下文传递给需要它的JAR API,或者如上所述,在包含应用程序的清单中声明JAR中定义的应用程序/活动。
这是相关文章的链接:android库项目和活动
指出了您在此处遇到的库的局限性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句