我对Android的开发有点新意,但我觉得我已经搜索了很多论坛并尝试了我能找到的所有内容,但无济于事。
无论如何,我正在尝试为我的Unity项目构建Android插件,基本上我想从Unity启动Android服务。好像我已经把所有的鸭子连成一排,但是当它启动服务时,我在Android Monitor LogCat上收到以下错误消息:
Unable to start service Intent{ cmd=com.activetime.androidplugin/.services.StepsService } U=0; not found
我怀疑是" /"介于" androidplugin"和" .services"并不是想在那里,这就是它无法找到服务的原因,但我不能为我的生活找出原因。我已经看到其他类似的问题,但没有一个解决方案似乎有效;或许合并清单存在一些问题?
无论如何,这里是来自Android Studio的Java类:
private static DBReader instance;
public DBReader(){
this.instance = this;
}
public static DBReader instance(){
if(instance == null){
instance = new DBReader();
}
return instance;
}
public void startStepsService(Activity unityActivity){
unityActivity.startService(new Intent(unityActivity, StepsService.class));
}
}
然后是Unity中的C#:
void Start(){
#if UNITY_ANDROID
using(AndroidJavaClass activityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) {
activityContext = activityClass.GetStatic<AndroidJavaObject>("currentActivity");
}
using(AndroidJavaClass pluginClass = new AndroidJavaClass("com.activetime.androidplugin.DBReader")) {
if(pluginClass != null) {
databaseplugin = pluginClass.CallStatic<AndroidJavaObject>("instance");
databaseplugin.Call("startStepsService", activityContext);
}
}
#endif
}
最后我的Android Studio XML清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.activetime.androidplugin">
<application android:allowBackup="true" android:label="@string/app_name"
android:supportsRtl="true">
<service
android:name="com.activetime.androidplugin.services.StepsService">
</service>
</application>