将cocos2dx 2.x.x从eclipse转移到Android Studio遇到的问题

                          cocos2dx 2.x.x从eclipse转移到Android Studio遇到的问题

  可能我用不太习惯Android Studio才会遇到这么多问题,让老手们见笑了。

  cocos2dx的最新版本,都是有Android Studio工程的,而旧版的没有。 为了方便,我用新的cocos版本创建了一个Android Studio工程,然后新建一个普通带界面的Android原生activity,然后设定这个activity为启动activity,发现打出来的包正常地运行了新界面。然后我去掉了cocos库的引用和cocos的相关的界面的java文件,再运行一下试试,发现一切正常。

  然后就是把原工程库和java文件加进来,这里出现第一个问题,找不到.R文件,其实就是那些java文件没被编译。网上有一种说法是点击bulid按钮下的make moudle “xxxxx”就可以,不过我并不属于这种情况。原来我新建工程的时候用的包名是随便填的,而Android Studio只编译module对应包名目录下的java文件。因此,我打开AndroidManifest,改成我真正想要的包名,然后把java文件都转到那里。

  然后,我把引用库的build版本号和complie版本号统一了一下。

  我转移到Android Studio的主要目的是接新的SDK,我接的是一个繁体版本的SDK,发海外,这SDK整合了很多杂七杂八的SDK在里面,很头疼。一整合进来就报错,报什么非法的语法操作什么的。网上的说法是,整合第三方库就很可能会报这个错,要做一下兼容处理。

  manifest加一下xmlns:tools属性:
  <manifest xmlns:tools="http://schemas.android.com/tools">
  <uses-sdk tools:overrideLibrary="com.xxx.xxx"/>

  打开对应module的build.gradle,defaultConfig {}中加入 multiDexEnabled true ,dependencies {}中加入compile 'com.android.support:multidex:1.0.0'

  这样一来,编译通过了,可是会有很多报错(其实是warning),如果不想看到这些红色的字,可以在proguard-rules.pro文件加入
  -keepattributes InnerClasses,EnclosingMethod
  -dontoptimize
  当我想打包时,报出如下错误:android studio java.lang.OutOfMemoryError: Java heap space
  这不是内存不够吗,我知道要上Google play的话硬性条件是主包不能大于100M,难道现在的默认设置就是这样?我现在的包是200M以上,看来要配置一下了。
  网上的说法是在build.gradle加入
  dexOptions {
  incremental true
  javaMaxHeapSize "4g"
  }
  我试了一下不行,后来发现android studio有这么一个提示
  Warning:The `android.dexOptions.incremental` property is deprecated and it has no effect on the build process.
  原来网上说的这个方法已经过时了,不过还有另一种方法:

  在gradle.properties文件末尾加入三行字
  org.gradle.daemon=true
  org.gradle.parallel=true
  org.gradle.jvmargs=-Xmx5120m
  嗯,ok,打包成功。

  还有要注意的一点,新建的Android Studio工程的AndroidManifest里面加入的uses-permission很少,记得从原游戏工程把完整需要用到的uses-permission拷贝过来。

  



posted @ 2017-10-23 21:25  陈浩明  阅读(1845)  评论(13编辑  收藏  举报