cocos2dx android 代码混淆

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cocos2dx android 代码混淆相关的知识,希望对你有一定的参考价值。

用2dx 做android端游戏,在eclipse里混淆代码,签名后出错,报json找不到的错误,第三方jar 用到了友盟,求教高手,怎么破?

  1. 下载cocos2dx 2.2.1

  去cocos2dx官网下载就好,最好是2.2.1版本。3.0版本变化比较大,也没测试过。

  3. 创建工程

  使用cocos2dx目录下的tools/project-creator/create_project.py创建一个工程。

  4. 编译android版本

  网上很多文章说,编译cocos2dx的Android版本时需要安装cygwin之类的,其实这对于目前的ndk版本来说是不必要的,因为高版本的ndk都集成了cygwin的一些功能。我这里使用的是ndk
r9d。下面来说一下操作步骤。

  我编译的习惯是直接在jni目录下预先ndk-build命令,因为在Windows下使用.sh结尾的文件太怪异了。首先来看一下build_native.sh干的工作:

  这是build_native.sh中实际工作的部分。可以看到它使用NDK_ROOT下的ndk-build来编译,还导入了NDK_MODULE_PATH,
这个NDK_MODULE_PATH是为Android.mk中的import-module提供路径选择。

  现在来导入NDK_MODEL_APTH, 在Android.mk的import-module之前加上cocos2dx中的几个路径:

  $(call import-add-path, G:/cocos2dx)

  $(call import-add-path,
G:/cocos2dx/cocos2dx/platform/third_party/android/prebuilt)

  运行ndk-build, 编译。

  编译时可能出现这样的错误:error: GLES2/gl2.h: No such file or
directory,这是因为低版本的Android版本不支持opengl es2.0,在Application.mk中加上:

  APP_PLATFORM := android-17

  5. 生成apk包

  在eclipse下打开创建的工程,导入相关的包后,在AndroidMenifest.xml中加入:

  android:debuggable="true"

  表明这是一个可以调试的包。运行,结果出现:

  这是因为该工程默认使用build_native.sh编译:

  因为build_native.sh现在已经没用了,所以把它改成:

  这个意思是,直接使用NDK_ROOT环境变量下的ndk-build.cmd来编译工程,编译成debug版本,编译成armeabi和armeabi-v7a两种指令格式的库,执行这个命令的目录是工程目录下的jni文件夹。debug版本和armeabi-v7b主要是为了后面使用visualGDB调试做准备。

  再编译,就可以生成apk包了。

  VisualGDB调试

  1. 下载并安装VisualGDB, 安装完成后,在Visual Studio的目录中可以看到Android选项:

  2. 配置VisualGDB, 在Android -> Setup SDK/NDK location

  主要配置JDK,SDK,NDK,ANT路径

  3. 设置要调试的apk包。Android -> Debug a Custom APK file

  4 设置完成后,在代码中设置断点,点击Debug, 开始调试

  5. 等apk安装完成后,程序会运行到断点出,就可以开始用Visual Studio调试了
参考技术A 您好,很高兴能帮助您
1. 下载cocos2dx 2.2.1
去cocos2dx官网下载就好,最好是2.2.1版本。3.0版本变化比较大,也没测试过。

3. 创建工程
使用cocos2dx目录下的tools/project-creator/create_project.py创建一个工程。

4. 编译android版本
网上很多文章说,编译cocos2dx的Android版本时需要安装cygwin之类的,其实这对于目前的ndk版本来说是不必要的,因为高版本的ndk都集成了cygwin的一些功能。我这里使用的是ndk r9d。下面来说一下操作步骤。
我编译的习惯是直接在jni目录下预先ndk-build命令,因为在Windows下使用.sh结尾的文件太怪异了。首先来看一下build_native.sh干的工作:

这是build_native.sh中实际工作的部分。可以看到它使用NDK_ROOT下的ndk-build来编译,还导入了NDK_MODULE_PATH, 这个NDK_MODULE_PATH是为Android.mk中的import-module提供路径选择。
现在来导入NDK_MODEL_APTH, 在Android.mk的import-module之前加上cocos2dx中的几个路径:

$(call import-add-path, G:/cocos2dx)
$(call import-add-path, G:/cocos2dx/cocos2dx/platform/third_party/android/prebuilt)
运行ndk-build, 编译。

编译时可能出现这样的错误:error: GLES2/gl2.h: No such file or directory,这是因为低版本的Android版本不支持opengl es2.0,在Application.mk中加上:

APP_PLATFORM := android-17

5. 生成apk包
在eclipse下打开创建的工程,导入相关的包后,在AndroidMenifest.xml中加入:

android:debuggable="true"

表明这是一个可以调试的包。运行,结果出现:

这是因为该工程默认使用build_native.sh编译:

因为build_native.sh现在已经没用了,所以把它改成:

这个意思是,直接使用NDK_ROOT环境变量下的ndk-build.cmd来编译工程,编译成debug版本,编译成armeabi和armeabi-v7a两种指令格式的库,执行这个命令的目录是工程目录下的jni文件夹。debug版本和armeabi-v7b主要是为了后面使用visualGDB调试做准备。
再编译,就可以生成apk包了。

VisualGDB调试
1. 下载并安装VisualGDB, 安装完成后,在Visual Studio的目录中可以看到Android选项:

2. 配置VisualGDB, 在Android -> Setup SDK/NDK location

主要配置JDK,SDK,NDK,ANT路径
3. 设置要调试的apk包。Android -> Debug a Custom APK file

4 设置完成后,在代码中设置断点,点击Debug, 开始调试

5. 等apk安装完成后,程序会运行到断点出,就可以开始用Visual Studio调试了

你的采纳是我前进的动力,
记得好评和采纳,答题不易,互相帮助,

android + scala + 混淆代码

【中文标题】android + scala + 混淆代码【英文标题】:android + scala + obfuscate code 【发布时间】:2013-10-14 21:19:00 【问题描述】:

我正在尝试使用经过混淆的 Scala 代码构建“最终 APK”。 我有 Eclipse + 插件:ADT、Scala、AndroidProguardScala。

当我选择:myproject Android 工具 > 导出未签名的应用程序包 有生成的 APK 但 Scala 代码没有被混淆。

另一方面:在 APT 构建配置中启用 proguard:proguard.config=$sdk.dir/tools/proguard/proguard-android.txt:proguard-project.txt时间> 生成数百个警告,最终失败。

想知道如何说服 IDE 使用经过混淆的 Scala 代码生成 APK。

顺便说一句。也许没有纯粹基于 IDE 的解决方案?我看到了适用于 Android 的 sbt 插件。也许这些需要使用?

https://github.com/pfn/android-sdk-plugin https://github.com/jberkel/android-plugin

【问题讨论】:

【参考方案1】:

强烈建议离开 IDE 并潜入 sbt 世界以开发 Scala 应用程序(尤其是使用 Scala/Android)。我前段时间在开发一个宠物项目,它使用了proguard,并且配置嵌入在Build.scala中,你可以看看:https://github.com/ktoso/kanbanery-tv/blob/master/project/Build.scala

除此之外,您还想了解最新版本:https://github.com/jberkel/android-plugin(或加入那里提到的邮件列表,所有 scala+android 人都在那里闲逛。)

【讨论】:

以上是关于cocos2dx android 代码混淆的主要内容,如果未能解决你的问题,请参考以下文章

android 怎么实现只混淆自己的代码,而不混淆第3方jar包

Android混淆代码

Android-android 怎么实现只混淆自己的代码,而不混淆第3方jar包

Android代码混淆之混淆规则

Android开发混淆使用手册

Android Studio 代码混淆(你真的会混淆吗)