Android IntentServiceがno empty constructorエラーになる
何度かこのエラーに引っかかっている私ですが…
java.lang.RuntimeException: Unable to instantiate service hogehoge.project.services.FetchAddressIntentService: java.lang.InstantiationException: can’t instantiate class hogehoge.project.services.FetchAddressIntentService; no empty constructor
下記のようなエラーが出て、IntentServiceが起動できない時があります。
コンストラクタがないよって言われてますが、下記のように、コンストラクタはありまぁす!
public class FetchAddressIntentService extends IntentService { public static final int SUCCESS_RESULT = 0; public static final int FAILURE_RESULT = 1; public static final String PACKAGE_NAME = "smart.location.admin.edison"; public static final String RECEIVER = PACKAGE_NAME + ".RECEIVER"; public static final String RESULT_DATA_KEY = PACKAGE_NAME + ".RESULT_DATA_KEY"; public static final String LOCATION_DATA_EXTRA = PACKAGE_NAME + ".LOCATION_DATA_EXTRA"; public static final String TAG = "FetchAddressIntentService"; protected ResultReceiver mReceiver; public FetchAddressIntentService(String name) { super(name); }
AndroidManifest.xmlにもサービスを記載してあるし、なんでだよ…っ!!
と思いますが、下記の記事によると
http://stackoverflow.com/questions/11859403/no-empty-constructor-when-create-a-service
引数のないコンストラクタを作らないといけない。
そうです。ふぎゃぁ。
というわけで、上記に下記を追加したら、IntentServiceが起動するようになりました!
public FetchAddressIntentService() { super("FetchAddressIntentService"); }