我想Android使用一个Apache ant文件构建我的应用程序的两个版本.问题是,除了lite版本中的广告之外,两个版本都是相同的.我读到了使用Configurationsant来build调试版本.
以下类定义了可在应用程序中引用的一些常量.
public class Config {
// Whether or not to include logging in the app.
public final static boolean LOGGING = true;
}
Run Code Online (Sandbox Code Playgroud)
这里有一个示例,说明如何使用此常量来确定是否启用了日志记录.
if (Config.LOGGING) {
Log.d(TAG, "[onCreate] Success");
}
Run Code Online (Sandbox Code Playgroud)
现在我可以在我的属性文件中启用和禁用日志记录.
# Turn on or off logging.
config.logging=true
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为在使用此配置之前,我必须创建第二个配置文件并使用filterset和复制.
public class Config {
// Whether or not to include logging in the app.
public final static boolean LOGGING = @CONFIG.LOGGING@;
}
Run Code Online (Sandbox Code Playgroud)
这很简单,但我如何使用它来构建我的应用程序的两个版本,有或没有广告.如何使用ant更改包名称,因此android market可以接受两个包(Full和Lite).
谢谢你的建议,但我还是有一些问题.
我设法编写了一些基本目标来清理我的构建并将所有构建应用程序所需的文件复制到两个文件夹/ …
我目前正在实现我的第一个基于JAX-RS的REST服务,在我对JAX-RS的研究中,我发现了两个版本如何实现应用程序的主要"入口点".一种选择是实现一个在其main方法中启动服务器的类:
public class Spozz {
public static void main(String[] args) throws Exception {
//String webappDirLocation = "src/main/webapp/";
int port = Integer.parseInt(System.getProperty("port", "8087"));
Server server = new Server(port);
ProtectionDomain domain = Spozz.class
.getProtectionDomain();
URL location = domain.getCodeSource().getLocation();
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/");
webapp.setDescriptor(location.toExternalForm() + "/WEB-INF/web.xml");
webapp.setResourceBase(location.toExternalForm());
webapp.setServer(server);
webapp.setWar(location.toExternalForm());
webapp.setParentLoaderPriority(true);
// (Optional) Set the directory the war will extract to.
// If not set, java.io.tmpdir will be used, which can cause problems
// if the temp directory gets cleaned periodically.
// …Run Code Online (Sandbox Code Playgroud) 我正在使用以下 makefile 来构建我的项目:
CC = /usr/bin/g++
CFLAGS = -Wall -pedantic -std=c++0x
LDFLAGS =
OBJ = main.o pnmhandler.o pixmap.o color.o
pnm: $(OBJ)
$(CC) $(CFLAGS) -o pnm $(OBJ) $(LDFLAGS)
%.o: %.c
$(CC) $(CFLAGS) -c $<
Run Code Online (Sandbox Code Playgroud)
当我运行 make 时,出现以下错误:
/usr/include/c++/4.9.1/bits/c++0x_warning.h:32:2: error: #error 此文件需要编译器和库支持 ISO C++ 2011 标准。此支持目前处于实验阶段,必须使用 -std=c++11 或 -std=gnu++11 编译器选项启用。
正如我从以下行中读到的,CFLAGS 没有正确包含,但我不知道我做错了什么:
g++ -c -o main.o main.cpp
也试过-std=c++11和-std=gnu++11,没有任何结果。有任何想法吗?
如果我运行make -Bn,我会得到:
g++ -c -o main.o main.cpp
g++ -c -o pnmhandler.o pnmhandler.cpp
g++ -c -o pixmap.o pixmap.cpp
g++ …Run Code Online (Sandbox Code Playgroud)