【问题标题】:error APT2008: attribute 'android:name' in <service> tag must be a valid Java class name错误 APT2008:<service> 标记中的属性 'android:name' 必须是有效的 Java 类名
【发布时间】:2020-09-21 14:28:37
【问题描述】:

我有一个使用 Xamarin 构建的 android 应用程序,它在我重命名解决方案、项目和包之前编译良好,但现在出现以下编译错误:

error APT2008: attribute 'android:name' in <service> tag must be a valid Java class name.

错误行在调试文件夹中生成的清单中:

<service android:enabled="true" android:name=".ActiviteService" />
<service android:name="com.my-domain.sub.android.activiteservice" android:exported="false" android:directBootAware="true" />
<receiver android:name="crc6426b0443894528d3f.BlockCalls">
  <intent-filter>
    <action android:name="android.intent.action.PHONE_STATE" />
    <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
  </intent-filter>
</receiver>

在我的清单中:

<application android:label="Link" android:icon="@drawable/logo">
    <service android:enabled="true" android:name=".ActiviteService" />
    <service android:name="com.my-domain.sub.android.activiteservice" android:exported="false" android:directBootAware="true" />
</application>

以及对应的类:

namespace Sub.Droid
{
    [Service (Name = "com.my-domain.sub.android.activiteservice")]
    class ActiviteService : Service
    {
...

我清理了项目,删除了 debug 和 obj 文件夹,重新构建了,但错误仍然存​​在。

【问题讨论】:

    标签: android visual-studio xamarin


    【解决方案1】:

    问题是名称中的连字符(我的域)。删除它允许编译。

    【讨论】:

    • 感谢分享。不要忘记接受答案。
    猜你喜欢
    • 1970-01-01
    • 2019-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 2020-09-24
    • 2019-08-31
    相关资源
    最近更新 更多