Android: 无法解析符号 'GeofenceTransitionsIntentService'

Android: Cannot resolve symbol 'GeofenceTransitionsIntentService'

我正在尝试实现添加和监控地理围栏的功能。我试图通过这个 tutorial 来做到这一点,但我已经卡在第一步了。

我也检查了build.gradle并且我使用相同的编译和targetSdkVersion...

我曾尝试按照他们的描述将服务添加到我的 AndroidManifest 文件中,但不幸的是,当我添加此服务标签时,它的名称显示为红色,我收到此消息:

Cannot resolve symbol 'GeofenceTransitionsIntentService'
Validates resource references inside Android XML files.

这就是我的 AndroidManifest.xml 的样子

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="at.at.tuwien.hci.hciss2015">

<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">
    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait">
    </activity>

    <activity
        android:name=".InitActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name=".CharActivity"
        android:label="@string/title_activity_char">
    </activity>

    <activity
        android:name=".AnimationSampleActivity">
    </activity>

    <service android:name=".GeofenceTransitionsIntentService" />
</application>

有人知道导致此问题的原因吗?我该如何解决?

您需要服务的完整路径。将其更改为如下所示:

<service android:name="com.myproject.GeofenceTransitionsIntentService"/>

其中 com.myproject 是适当的包名称。

你的GeofenceTransitionsIntentService.java文件显然没有你的根包。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="at.at.tuwien.hci.hciss2015">

您的 GeofenceTransitionsIntentService.java 应以:

开头
package at.at.tuwien.hci.hciss2015;

// ...

然后你可以在你的AndroidManifest.xml文件中声明它:

<service android:name=".GeofenceTransitionsIntentService" />

这里的 .GeofenceTransitionsIntentService 意味着 GeofenceTransitionsIntentService 在包的根目录中,即 at.at.tuwien.hci.hciss2015.