AndroidManifest.xml 中的包“com.class.foo.test”不是有效的 Java 包名称,因为“class”是 Java 关键字

问题描述 投票:0回答:3

我是 Android 中浓缩咖啡测试的新手。当我尝试构建测试 apk 时,我收到此错误:

Package 'com.class.foo.test' from AndroidManifest.xml is not a valid Java package name as 'class' is a Java keyword.

是否有任何可能的方法来更改测试构建配置或任何其他解决方案中的包名称?

java android unit-testing keyword package-name
3个回答
6
投票

我得到这个是因为我的包名称中带有

-
(即
test-support
)。在模块的
AndroidManifest.xml
中,我有

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.thomas.myapp.test-support" />

Java 语言规范

如果域名包含连字符或标识符中不允许的任何其他特殊字符(第 3.8 节),请将其转换为下划线。

我没有转换为下划线,但只需删除连字符即可。我将

AndroidManifest.xml
更改为

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.thomas.myapp.testsupport" />

现在效果很好。 Khemraj 的回答 让我走上了解决这个问题的正确道路。


3
投票

就像它说的那么简单。

不是有效的 Java 包名称,“class”是 Java 关键字。

Java
中有一些保留关键字。你不能使用哪个。您正在使用
class
,这是保留字。

您可以更改类包名称作为解决方案。

Java 保留关键字列表。


0
投票
  1. 使用从AndroidManifest.xml中提取的packageName,

  2. 您应该从 AndroidManifest.xml 文件中删除包。

  3. 在build.gradle文件中的android块下添加命名空间属性。

像这样:

// build.gradle 

android {
    namespace "packageName"
    ...
}

查看详细信息:https://discuss.gradle.org/t/namespace-not-specified-for-agp-8-0-0/45850

© www.soinside.com 2019 - 2024. All rights reserved.