將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拷貝過來。

  




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM