我创建了2个项目1是Lib,第2个是Test。 Lib项目需要保存一些数据,它应该是共享首选项(没有其他选项)。 Lib项目是一个jar,所以没有任何上下文内容。
根据我的理解,这与Context有关。 Accessing SharedPreferences through static methods
所以我创建了一个在Lib Project中扩展Application的Class。这是单身类。我在Lib App mainifiest文件中声明如下
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:name="com.test.manager.LibApp" >
</application>
然后我将这个完整的项目作为lib添加到我的实际项目(testApp)中。当我尝试运行时,我得到空指针异常。
答案 0 :(得分:2)
问题在于您在Lib清单文件中声明了应用程序的存在(完全被忽略)。你需要搬家:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:name="com.test.manager.LibApp" >
</application>
进入testApp清单。
长话短说,Context不能源自JAR文件,它必须来自利用库的应用程序。这意味着您必须将App的上下文传递给需要它的JAR API,或者如上所述,在包含的应用程序中声明JAR中定义的应用程序/活动。清单。
以下是相关帖子的链接:android library project and Activities
指出了您在这里遇到的库的限制。