我正在开发一个通用的 Android 游戏引擎,它将在我的许多 Android 应用程序中用作基本系统。问题是,在我所有的 Java 文件中,我目前必须像这样对包名称进行硬编码:
package com.example.mygameengine;
但是因为我想在许多不同的应用程序中使用我的通用游戏引擎的代码,我需要找到一种在编译时为 Java 文件指定包名的方法,因为我不想保留我的 Java 源代码的多个副本因为包名不同。我想要一个中央源代码树,并且包名称应该可以根据我要编译的应用程序动态更改。
那么有没有办法做这样的事情:
package $(PACKAGE_NAME)
在 $(PACKAGE_NAME) 将在编译时用真实包名替换的 Java 源代码中?也许 javac 有一个选项允许我为它传递的文件指定一个包名,而不是从文件本身中获取它?请注意,我使用的不是 Eclipse,而是准系统命令行工具,例如 ant 和 make。
编辑:我不明白为什么这被标记为重复。我已经问过一个基本问题,即 Java 语言中的“包”指令是否需要在源代码中硬编码字符串参数,或者是否也可以在编译时使用编译器指令设置这个包名称。这是一个与此处链接为假定“原始”问题的问题完全不同的问题,该问题与 Android 构建系统的联系更加紧密。我的问题是关于 Java 语言的基础知识,而不是关于 Android 构建系统。