用于cocos2d-x引擎(ndk)中为android项目生成编译文件列表

复制代码 代码如下:
package com.leeass.generate;

import java.io.File;
import java.io.FileFilter;
import java.io.FileNotFoundException;

/**
 * 用于cocos2d-x引擎中android项目编译文件列表生成
 * @author leeassamite
 *
 */
public class GenerateAndroidMakefile {
 /** 分隔符 */
 private static final String LINE_BREAK = System.getProperty("line.separator", "/n");
 /** classes文件夹 */
 private File classesDir = null;
 /** classes文件夹路径 */
 private String classesPath = "";
 /** classes文件夹相对路径 */
 private String classesRelativePath = "";
 /** 编译文件过滤器 */
 private BuildFileFilter buildFileFilter = null;

/**
  * 创建GenerateAndroidMakefile
  * @param classesAbsolutePath classes文件夹绝对路径
  * @param classesRelativePath classes文件夹在编译文件中的相对路径
  * @throws Exception
  */
 public GenerateAndroidMakefile(String classesAbsolutePath,String classesRelativePath) throws Exception{
  if(classesRelativePath == null){
   throw new Exception("classes文件夹相对路径错误,不能为NULL!");
  }
  if(classesAbsolutePath == null || "".equals(classesAbsolutePath)){
   throw new Exception("classes文件夹路径输入错误,不能为空!");
  }
  classesDir = new File(classesAbsolutePath);
  if((!classesDir.exists()) || (!classesDir.canRead()) || (!classesDir.isDirectory())){
   throw new FileNotFoundException("classes文件夹不可读:"+classesDir.getAbsolutePath());
  }
  this.classesPath = classesAbsolutePath;
  this.classesPath = classesAbsolutePath.replaceAll("\\\\", "/");
  this.classesRelativePath = classesRelativePath;
  buildFileFilter = new BuildFileFilter();
 }

/**
  * 输出编译文件列表
  */
 public void outputBuildFilesList(){
  StringBuilder buildFilesSb = new StringBuilder();
  outputBuildFileList(classesDir,buildFilesSb);
  System.out.println(buildFilesSb.toString());
 }
 private void outputBuildFileList(File buildfile,StringBuilder buildFilesSb){
  if(buildfile.isDirectory()){
   File[] files =buildfile.listFiles(buildFileFilter);
   for (File file : files) {
    outputBuildFileList(file,buildFilesSb);
   }
  }else{
   String buildfileStr = translateBuildFilePath(buildfile.getAbsolutePath()) + " \\";
   buildFilesSb.append(buildfileStr).append(LINE_BREAK);
  }
 }
 /**
  * 转换编译文件路径
  * @param filepath
  * @return
  */
 private String translateBuildFilePath(String filepath){
  return filepath.replaceAll("\\\\", "/").replace(classesPath, classesRelativePath);
 }

/**
  * @param args
  * @throws FileNotFoundException
  */
 public static void main(String[] args) throws Exception {
  String classesPath = "D:\\developer\\cocos2d-x-2.1.4\\projects\\hszg_ol\\Classes";
  String relativePath = "                   ../../Classes";
  GenerateAndroidMakefile gam = new GenerateAndroidMakefile(classesPath,relativePath);
  gam.outputBuildFilesList();
 }

/**
  * 编译文件过滤器
  * @author leeass
  *
  */
 class BuildFileFilter implements FileFilter{
  @Override
  public boolean accept(File pathname) {
   String name = pathname.getName().toLowerCase();
   return (!pathname.isHidden()) && (pathname.isDirectory() || name.endsWith(".c") || name.endsWith(".cpp"));
  }
 }

}

时间: 2024-11-30 01:22:11

用于cocos2d-x引擎(ndk)中为android项目生成编译文件列表的相关文章

eclipse-eclipce中的Android项目导入问题

问题描述 eclipce中的Android项目导入问题 下面是Console显示的结果,这是我一下子导入了好几个安卓项目,求大神帮忙解决一下下面的问题哈 [ day0307_int拆分4字节] Project has no project.properties file! Edit the project properties to set one. [ day0502_while循环------] Project has no project.properties file! Edit the

在eclipse中导入android项目,一直报错求帮助~

问题描述 在eclipse中导入android项目,一直报错求帮助~ 文档">换了两台电脑都会出现这样的错,是怎么回事呢?谢谢大牛们啦~Failed to call IFileListener.fileChanged java.lang.StackOverflowError 解决方案 应该是JAVA版本问题 不兼容 解决方案二: http://www.cnblogs.com/SkyD/archive/2010/11/25/1887219.html 解决方案三: 最好第三方库跟你的工程在同一

在Eclipse中的Android项目里实现代码复用

引言 开发时通常都会有多个项目间代码复用的需求,这时通常的做法是设置项目依赖,让一个项目引用另一个项目,比如在Visual Studio中这样就很容易实现. 而在Eclipse中的Android项目里,如果要引用另一个项目,理论上应该也使用类似的办法: 这里是引用一个名为Core的项目.这样做下来,在编写代码时不会有问题,但是在模拟器中运行时就会出现NoClassDefFoundError异常,原因是找不到引用项目中的类.而通过此窗口中Libraries选项卡中的各种功能添加引用,通常得到的结果

为什么android无法生成R文件

android 无法生成R文件 是件痛苦的事情,即使有时候你xml文件没有错误,他都无法生成.针对此问题, 我总结以下几个方面的原因. 一.xml本身有错误 R.java这个文件是会自动生成的,但是如果你不小心xml文件写错了,或者不小心在编辑xml的时候点击了 run(其实这个时候会运行这个xml文件,会生成一个同名的xml文件,后缀为xx.out.xml),然后正巧你游 clear了一下项目,你可能会发现gen下面的R.java的文件没有了,这个在刚开始的时候很气人,真不知道怎么 解决,后来

android 无法生成R文件的原因剖析

android 无法生成R文件 是件痛苦的事情,即使有时候你xml文件没有错误,他都无法生成.针对此问题,我总结以下几个方面的原因. 一.xml本身有错误 R.java这个文件是会自动生成的,但是如果你不小心xml文件写错了,或者不小心在编辑xml的时候点击了run(其实这个时候会运行这个xml文件,会生成一个同名的xml文件,后缀为xx.out.xml),然后正巧你游clear了一下项目,你可能会发现gen下面的R.java的文件没有了,这个在刚开始的时候很气人,真不知道怎么解决,后来发现,只

操作系统-java中使用jacob插件生成word文件乱码

问题描述 java中使用jacob插件生成word文件乱码 java中使用jacob插件生成word文件,使用的是先生成rtf再生成Word,当前在中文操作系统下完全正常,但是在英文和繁体操作系统下生成的Word文件内容中汉字显示乱码~ 求大神指导! 解决方案 http://bbs.csdn.net/topics/390289313

ckfinder-java web项目中CKFinder插件无法正常打开文件列表

问题描述 java web项目中CKFinder插件无法正常打开文件列表 java web 项目中配置了CKFinder.本地win7+eclipse+tomcat测试没问题,但当部署到测试服务器后(ubuntu+tomcat)后,打开文件列表时会报"从服务器读取XML数据出错". 调试发现没有找到"ckfinder/core/connector/java/connector.java"文件?请问这是为什么?谢谢大家! 解决方案 猜测应该是你的服务器设置了虚拟目录的

调试-myclipse中的maven项目不能编译打包

问题描述 myclipse中的maven项目不能编译打包 debug as ,可以用.但run as不可以用,是什么原因? 解决方案 maven项目打包

tomcat-ecplise无法将java项目或者android项目或者java文件导出为war包啊

问题描述 ecplise无法将java项目或者android项目或者java文件导出为war包啊 ecplise无法将java项目或者android项目或者java文件导出为war包啊 我想部署到tomcat服务器呢, 解决方案 首先你得描述清楚问题为什么不能导出,给出错误信息. eclipse下右键项目有export选项即可导出为war包