2014-09-12 29 views
3

我想用下面的库来开发我的应用程序。Robospice无法启动SpiceManager作为类的服务

  • Robospice

  • GSON

  • 和Spring为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" /> 

,我创建被用作基本活动的基类。而且,我在下面的方法做:

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; 
    } 
} 

然后,我用的是基类来扩展自己的课堂,我不得不使用香料的服务请求。

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

@ChrisNevill对不起,在玩耍的时候,我也试过了。但问题出在Gson身上,谢谢你的回复。我纠正了这个问题 – Dipendra 2014-09-12 15:57:14

回答

2

我100%确定你在某处弄到了什么。在您的代码中搜索new SpiceManager(SpiceService.class);,您会发现您确实使用此服务而不是所需的GsonSpringAndroidSpiceService

1

你需要在你的manifest.xml 声明你的服务像这样

<service android:name=".SampleRetrofitService" 
     android:exported="false"/> 
0

尝试找出使用SpiceManager。 在我的情况下,我命名了一个活动SpiceActivity,其他人扩展它。 但robospice库也提供了一个名为SpiceActivity的活动。它使用新的SpiceManager(SpiceService.class)

因此,活动扩展错误的SpiceActivity使用SpiceService,然后导致错误。