我正在尝试使用以下库来开发我的应用程序。
Robospice
GSON
和Spring for android
为此,在我的gradle文件中添加了以下依赖项
compile 'com.octo.android.robospice:robospice-spring-android:1.4.13'
compile 'com.google.code.gson:gson:2.2.4'
在清单文件中,我在应用程序标记中插入了以下行。
<service
android:name="com.octo.android.robospice.GsonSpringAndroidSpiceService"
android:exported="false" />
现在,我创建了一个用作Base Activity的基类。而且,我通过以下方式做到了这一点:
public class BaseSpiceActivity extends Activity {
private SpiceManager spiceManager = new SpiceManager(GsonSpringAndroidSpiceService.class);
@Override
protected void onStart() {
spiceManager.start(this);
super.onStart();
}
@Override
protected void onStop() {
spiceManager.shouldStop();
super.onStop();
}
protected SpiceManager getSpiceManager() {
return spiceManager;
}
}
然后我使用该基类来扩展我自己的类,我必须使用spice服务请求。
SimpleTextRequest text = new SimpleTextRequest(placeUrl);
getSpiceManager().execute(text, "place", DurationInMillis.ONE_MINUTE, new RequestListener<String>() {
//Other functions and codes
}
)
但是当上面的代码被执行时,我得到了以下错误
E/AndroidRuntime﹕ FATAL EXCEPTION: SpiceManagerThread 0
java.lang.RuntimeException: Impossible to start SpiceManager as no service of class : com.octo.android.robospice.SpiceService is registered in AndroidManifest.xml file !
at com.octo.android.robospice.SpiceManager.checkServiceIsProperlyDeclaredInAndroidManifest(SpiceManager.java:1287)
at com.octo.android.robospice.SpiceManager.tryToStartService(SpiceManager.java:1168)
at com.octo.android.robospice.SpiceManager.run(SpiceManager.java:247)
at java.lang.Thread.run(Thread.java:856)
我一直在努力解决这个问题。但不幸的是,不可能。请帮帮我。
答案 0 :(得分:2)
我百分百肯定你在某个地方搞砸了。在您的代码中搜索new SpiceManager(SpiceService.class);
,您会发现您确实使用此服务而不是所需的GsonSpringAndroidSpiceService
。
答案 1 :(得分:2)
您需要在manifest.xml中声明您的服务 喜欢这个
<service android:name=".SampleRetrofitService"
android:exported="false"/>
答案 2 :(得分:0)
尝试找出使用SpiceManager的位置。 就我而言,我将活动命名为SpiceActivity,其他人则扩展它。 但是robospice库还提供了一个名为SpiceActivity的活动。它使用新的SpiceManager(SpiceService.class)
因此,活动扩展了使用SpiceService的错误SpiceActivity,然后导致错误。