cocos2dx项目使用proguard

如果你的应用要上架googleplay,则必须使用加密。 android SDK中已经集成了proguard。 因此,整个流程就容易多了。

在proj.android下的project.properties文件中,加入一行  proguard.config=proguard.cfg

然后,将{android-sdk-root}\tools\proguard\proguard-android.txt 拷贝过来,改名为proguard.cfg。(这里还有一个带 optimize的,具体操作直接看这个文件里面的说明就可以了。)

 

如果你的项目集成了第三方JAR库,则像下面这样无脑添加如下选项,保证你没问题

一、添加外部引用

-libraryjars ./libs/tapjoyconnectlibrary.jar
-libraryjars ./libs/chartboost.jar
-libraryjars ./libs/crashlytics.jar
-libraryjars ./libs/in-app-purchasing-2.0.1.jar

二、指定不混淆且不提示下面的包错误(这是第三方包,我们要保护的是自己的代码,所以,没必要混淆它)

-keep class com.tapjoy.** { *; }

-keep class com.amazon.** { *; }
-dontwarn com.amazon.**
-dontwarn com.tapjoy.**

注:如果你的SDK有明确告诉你哪些系统库不能忽略,则你需要手工指定。比如tapjoy明确了要添加下面的代码。

-keep class com.tapjoy.** { *; }
-keepattributes JavascriptInterface
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}
-keep class com.google.android.gms.ads.identifier.** { *; }

 

 

三、-keep class org.cocos2dx.lib.** {*;}

这个加了,才能防止org.cocos2dx.lib的代码不被proguard移除。因为proguard会帮你删掉未引用的代码。、

而你的org.cocos2dx.lib是被JNI调用的,proguard查不到你对他的引用,所以默认情况下,会被移除。因此你只能手工指定一下了。 否则启动不了游戏。

 

四、加上自己的JNI代码。

和org.cococs2dx.lib一样,如果你自己提供了需要C++调用的JNI类,你得自己手工指定保留。比如

-keep class com.dreamhunters.JNI {*;}

时间: 2024-11-10 01:20:22

cocos2dx项目使用proguard的相关文章

1.将cocos2d-x项目移植到Linux环境下,将cocos2d-x项目移植到手机上

 1.将cocos2d-x相关的软件包拷贝到Linux下. 2 对上面的安装包进行解压 3 执行cocos2dx-2.2.3/install-deps-linux.sh(执行这个命令需要有网络) 4 安装QT,命令:sudoapt-get install qt-sdk 5 在cocos2dx-2.2.3目录下,执行./make-all-linux-project.sh 6 要让64位的linux能运行32位的adb,aapt工具,需要安装以下软件 sudo apt-get install g

cocos2d-x项目101次相遇:action ,移动sprite

cocos2d-x 101次相遇 / 目录 1   安装和环境搭建 -xcode 2   Scenes , Director, Layers, Sprites3   建立图片菜单 4   在HelloWorld上--建立新场景 5   增加一个精灵sprite 5.1   缩小sprite并使之完整显示6   action ,移动sprite 7   3.0 的点击事件,CCTouchDelegate已经停用了8   使用触摸事件移动 精灵 移动一个 sprite 在上一节的基础上将sprite

cocos2d-x项目101次相遇:3.0 的点击事件,CCTouchDelegate已经停用了

cocos2d-x 101次相遇 / 目录 1   安装和环境搭建 -xcode 2   Scenes , Director, Layers, Sprites3   建立图片菜单 4   在HelloWorld上--建立新场景 5   增加一个精灵sprite 5.1   缩小sprite并使之完整显示6   action ,移动sprite 7   3.0 的点击事件,CCTouchDelegate已经停用了8   使用触摸事件移动 精灵 cocos2d-x 3.0 不再使用 TouchDel

xcode 运行 cocos2dx 项目问题总结

由于管理公司游戏项目ios的打包,且都是cocos2dx项目.经常碰到各种各样的问题,打算以后碰到的问题记录下来... 1.这个是折腾了我挺久的一个问题 Undefined symbols for architecture armv7: "cocos2d::CCDictionary::removeObjectForKey(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator&l

Cocos2d-x项目实战开发:功夫小子之 基础类分析与实现

Cocos2d-x项目实战开发:功夫小子之 基础类分析与实现 Cocos2d-x实战项目开发:功夫小子之基础类分析与实现 — 课程概要 游戏项目基本工具类的分析和实现 游戏项目英雄实体类的分析和实现 具有简单AI的怪物实体类的分析和实现 一.基本工具类的分析和实现 帧动画相关概念介绍 动画创建器的实现和全局数据文件的创建 帧动画(Frame By Frame) 是在“连续的关键帧”中分解动画动作,也就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成动画. 涉及的相关函数和类 动画帧 Spr

Mac下编译libpomelo静态库,并在cocos2dx项目中引用

最近在学习cocos2dx的过程中需要和服务器进行交互,所以这几天在学习libpomelo静态库的编译和使用.之前在windows系统下编译libpomelo,并在VS中引入比较顺利:但是,目前对Mac系统和XCode不是很熟悉,所以多花了些时间.不过,最终还是成功了,在这里就将我编译引入libpomelo静态库的过程记录下来,也分享给和我一样遇到问题的朋友们. 准备工作 libpomelo下载地址:https://github.com/NetEase/libpomelo或者http://pan

cocos2d-x项目101次相遇:使用触摸事件移动 精灵

cocos2d-x 101次相遇 / 文件夹 1   安装和环境搭建 -xcode 2   Scenes , Director, Layers, Sprites3   建立图片菜单 4   在HelloWorld上--建立新场景 5   添加一个精灵sprite 5.1   缩小sprite并使之完整显示6   action ,移动sprite 7   3.0 的点击事件,CCTouchDelegate已经停用了 8   使用触摸事件移动 精灵 void CMyFirstScene::onTou

codeblocks中cocos2dx项目添加新的.cpp和.h文件后编译运行的方法

新建了cocos2dx项目后(比如我这里建立的项目名为Test01),项目目录下有如下目录和文件: bin CMakeLists.txt MyGame.layout proj.win10 Classes cocos2d proj.android proj.win32 CMakeCache.txt lib proj.android-studio proj.win8.1-universal CMakeFiles Makefile proj.ios_mac Resources cmake_instal

第二讲:创建第一个Cocos2d-x项目

*创建一个cocos2dx项目: 运行-cmd- 进入到 ...\cocos2d-x-3.0alpha0\cocos2d-x-3.6\tools\cocos2d-console\bin cocos2d的文件夹不能有中文目录,不然创建的时候会有不成功的错误出现. cocos new TestGame -p com.test.helloworld -l cpp -d F:\cocos2dx_projects helloworldScene.h中的方法如下: //自动回收机制 CREATE_FUNC(