接入微信分享 以及使用eclipse调试cocos2dx

来源:互联网 发布:淘宝美工用的什么软件 编辑:程序博客网 时间:2024/05/16 10:11

参考文章:http://www.zaojiahua.com/eagled-the-letter-to-share.html

以下是文章内容:

本次的游戏代码是使用lua完成,所以接入第三方的SDK也和c++层的方法稍有区别,首先来说明整体的思路。我们是在Android应用平台接入的微信分享,所以在这个平台下,也就是java层实现接入逻辑,留下给c++层调用的接口,c++层通过jni来调用java层实现业务逻辑的接口,而我们是在Lua中完成的游戏逻辑,所以我们还需要做的一个步骤就是,将c++的接口导出给lua层来使用,这个过程需要使用lua-binding。

Lua小游戏别撞车——接入微信分享

前俩个过程我在博客用3.0实现飞机大战——接入微信分享有详细的说明,请大家参考这篇博客,我们把整个接入流程再走一遍。

1、将项目导入eclipse的工程中,添加微信的SDK,在微信的开发者中心申请接入的应用,获得APPID。

2、实现java层的接入逻辑,在AppActivity文件中实现了一些函数,应该是和lua有关的,不用管。在onCreate中调用注册代码,将用到的成员变量和接口函数写在appActivity文件中。以下是涉及到调用微信的代码,其中有一个Util类,在上面给的博客地址中有说明,注意包名写对了。

1//微信SDK
2    private static final String APP_ID = "wx42ca6be8e52eebfb";
3    private static IWXAPI api;
4    private static AppActivity instance;
5 
6    static String hostIPAdress="0.0.0.0";
7    @Override
8    protected void onCreate(Bundle savedInstanceState) {
9        // TODO Auto-generated method stub
10        super.onCreate(savedInstanceState);
11 
12        //注册到微信
13        regToWX();
14 
15        if(nativeIsLandScape()) {
16            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
17        else {
18            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
19        }
20 
21        //2.Set the format of window
22 
23        // Check the wifi is opened when the native is debug.
24        if(nativeIsDebug())
25        {
26            getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
27            if(!isNetworkConnected())
28            {
29                AlertDialog.Builder builder=new AlertDialog.Builder(this);
30                builder.setTitle("Warning");
31                builder.setMessage("Open Wifi for debuging...");
32                builder.setPositiveButton("OK",new DialogInterface.OnClickListener() {
33 
34                    @Override
35                    public void onClick(DialogInterface dialog, int which) {
36                        startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
37                        finish();
38                        System.exit(0);
39                    }
40                });
41                builder.setCancelable(false);
42                builder.show();
43            }
44        }
45        hostIPAdress = getHostIpAddress();
46    }
47 
48    //初始化微信
49    private void regToWX(){
50        api = WXAPIFactory.createWXAPI(this, APP_ID, true);
51        api.registerApp(APP_ID);
52    }
53 
54    //留下给c++层调用的接口
55    public static void sendMsgToFriend(){
56        if(api.openWXApp())
57        {
58                //初始化一个对象WebpageObject
59            WXTextObject textObject = new WXTextObject();
60            textObject.text = "小塔博客用lua写的小游戏别撞车,博客地址http://www.zaojiahua.com/tag/3-0%E9%A3%9E%E6%9C%BA%E5%A4%A7%E6%88%98!";
61 
62            //媒体对象中
63            WXMediaMessage msg = new WXMediaMessage(textObject);
64            msg.title = "别撞车";
65            msg.description = "分享给你的好友,让更多的人来玩!";
66 
67            //建立请求对象
68            SendMessageToWX.Req req = new SendMessageToWX.Req();
69            //transaction是用来表示一个请求的唯一标示符
70            req.transaction = buildTransaction("textObject");
71            req.message = msg;
72            req.scene = SendMessageToWX.Req.WXSceneSession;
73 
74            //使用通信类发送
75            api.sendReq(req);
76        }
77        else
78        {
79             Toast.makeText(instance, "启动微信失败!", Toast.LENGTH_SHORT).show();
80        }
81    }
82 
83    public static void sendMsgToTimeLine(){
84        if(api.openWXApp())
85        {
86            if(api.getWXAppSupportAPI() >= 0x21020001)
87            {
88                WXWebpageObject webpage = new WXWebpageObject();
89                webpage.webpageUrl = "http://m.baidu.com/app?action==content&docid=6561264&f=s1001";
90 
91                WXMediaMessage msg = new WXMediaMessage(webpage);
92                msg.title = "别撞车";
93                msg.description = "分享到我的朋友圈,让更多的人来玩!";
94 
95                Bitmap thumb = BitmapFactory.decodeResource(instance.getResources(),R.drawable.icon);
96                msg.thumbData = Util.bmpToByteArray(thumb, true);
97 
98                SendMessageToWX.Req req = new SendMessageToWX.Req();
99                req.transaction = buildTransaction("webpage");
100                req.message = msg;
101                req.scene = SendMessageToWX.Req.WXSceneTimeline;
102                api.sendReq(req);
103            }
104            else{
105                Toast.makeText(instance, "微信版本过低", Toast.LENGTH_SHORT).show();
106            }
107        }
108        else
109        {
110             Toast.makeText(instance, "启动微信失败", Toast.LENGTH_SHORT).show();
111        }
112    }
113    private static String buildTransaction(final String type) {
114        return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
115    }

Lua小游戏别撞车——接入微信分享

3、接下来实现c++层的逻辑,从这里开始才是本篇博客重点要说明的。首先需要打开c++层的代码,我是在Mac下写的代码,所以打开我的Xcode工程,工程位置如图所示,如果没有frameworks文件夹,可以采用如图的操作。

Lua小游戏别撞车——接入微信分享Lua小游戏别撞车——接入微信分享

之前我们写的圆周运动类是在classes文件夹下,注册是在appDelegate中完成的,这种方法在我的博客绑定自定义类到Runtime(Lua-binding)中有详细的说明,本篇博客采用另一种更加简单的方法,但是思路是不变的,采用这种方法以后扩展比较容易,再换一种方式来做可以更好的理解绑定的机制。

在frameworks/cocos2d-x/cocos目录下新建custom文件夹,顾名思义就是自定义的一些类,以后我们可以将自己定义的类全部放到这个文件夹中,在这个文件夹中新建类WeixinShare,然后在工程中导入这个类,导入路径如下。

Lua小游戏别撞车——接入微信分享Lua小游戏别撞车——接入微信分享

以下是俩个静态函数的实现。

1#ifndef __ColorBlind__WeixinShare__
2#define __ColorBlind__WeixinShare__
3 
4#if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
5 
6#include "platform/android/jni/JniHelper.h"
7#include <jni.h>
8 
9#endif
10 
11#include "Cocos2d.h"
12USING_NS_CC;
13 
14class CC_DLL WeixinShare
15{
16public:
17    static void sendToFriend();
18    static void sendToTimeLine();
19};
20 
21#endif /* defined(__DontCrash__WeixinShare__) */
1#include "WeixinShare.h"
2 
3#if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
4 
5#include "platform/android/jni/JniHelper.h"
6#include <jni.h>
7 
8#endif
9 
10void WeixinShare::sendToFriend()
11{
12#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) //判断当前是否为Android平台
13    JniMethodInfo minfo;
14 
15    bool isHave = JniHelper::getStaticMethodInfo(minfo,"org/cocos2dx/lua/AppActivity","sendMsgToFriend""()V");
16 
17    if (!isHave) {
18        log("jni:sendMsgToFriend is null");
19    }else{
20        //调用此函数
21        minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID);
22    }
23#endif
24}
25 
26void WeixinShare::sendToTimeLine()
27{
28#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) //判断当前是否为Android平台
29    JniMethodInfo minfo;
30 
31    bool isHave = JniHelper::getStaticMethodInfo(minfo,"org/cocos2dx/lua/AppActivity","sendMsgToTimeLine""()V");
32 
33    if (!isHave) {
34        log("jni:sendMsgToTimeLine is null");
35    }else{
36        //调用此函数
37        minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID);
38    }
39#endif
40}

这样的话c++层的代码也完成了,大家可以编译一下工程,看看是否有错误。如果没有错误我们就导出给lua使用。

4、进入tools/tolua目录,复制一份cocos2dx.ini配置文件,改名为cocos2dx_custom.ini文件,然后修改这个文件,主要注意的地方如图所示。

Lua小游戏别撞车——接入微信分享Lua小游戏别撞车——接入微信分享

这样我们自己导出类的配置文件就OK啦,然后打开genbinding.py文件,添加一行新的配置文件内容。

Lua小游戏别撞车——接入微信分享

接着在控制台下执行脚本genbinding.py。

Lua小游戏别撞车——接入微信分享Lua小游戏别撞车——接入微信分享

这样在auto目录下我们就成功的得到了桥接函数lua_cocos2dx_custom_auto,现在我们将这个桥接函数导入到我们的工程中,之所以要导入是为了让整个项目在编译的时候编译这些文件。在lua_cocos2dx_custom_auto.cpp中,对WeixinShare.h的包含要加入目录名。现在编译整个工程,如果编译成功代表导出的就没有问题,我们才能进行下一步。

Lua小游戏别撞车——接入微信分享Lua小游戏别撞车——接入微信分享

现在只差最后一步注册了,之前的函数注册是在appDelegate中完成的,这次的注册和cocos2d-x的注册函数放到一起完成,路径在cocos/scripting/lua-bindings/manual/CCLuaStack.cpp文件中,需要先包含头文件,所谓的注册就是调用桥接函数的头文件中所声明的那个函数。

Lua小游戏别撞车——接入微信分享Lua小游戏别撞车——接入微信分享

函数注册完毕以后我们需要重新编译一下c++层的代码,你可以在Xcode中编译,也可以在IDE中build一下runtime,俩者的道理是一样的,都是重新编译c++层代码。不过需要注意的是,如果是在Xcode工程中编译的代码,在IDE中可能需要选择一下使用最新编译出来的runtime,如图所示。整个lua-binding的过程就是这样,这么做的方便是以后如果你写很多的自定义类那么只需要在custom目录下新建文件,在init中新增自己的类名,然后运行genbinding.py脚本就会生成绑定的接口了,不再需要注册自己的多个导出函数了,刚才的这些步骤刚开始做是比较麻烦,不过为以后再导出自定义的类省下不少功夫。

Lua小游戏别撞车——接入微信分享

5、下面我们就使用导出的函数来完成程序的功能,先对lua层的代码稍作修改,添加调用分享的菜单项。

1--游戏介绍以后的处理
2function MainGameScene:gameOver(layer)
3    --清除数据
4    GlobalData:reset()
5    self.score:setString("0")
6    --重新设置小车的位置
7    self:resetCar()
8 
9    --添加分享和更多菜单项
10    self:addButton(layer)
11end
12 
13function MainGameScene:addButton(layer)
14    local share = cc.MenuItemImage:create("share.png","","")
15    share:setScale(0.8)
16    local more = cc.MenuItemImage:create("more.png","","")
17    more:setScale(0.8)
18    local retry = cc.MenuItemImage:create("retry.png","","")
19    retry:setScale(0.8)
20    local menu = cc.Menu:create(share,retry,more)
21    menu:alignItemsHorizontallyWithPadding(self.size.width*0.1)
22    menu:setPosition(cc.p(self.size.width/2,self.size.height/2))
23    layer:addChild(menu,3)
24 
25    --callback
26    local retry_callback = function()
27        --播放音效
28        SoundDeal:playEffect(EffectType.Start)
29        retry:runAction(cc.Sequence:create(cc.ScaleTo:create(0.05,1.3),
30            cc.CallFunc:create(function()menu:removeFromParentAndCleanup(trueend)))
31        self:runRedCar(self.car_red)
32        self:runYelloCar(self.car_yello)
33        self.play = true
34        self:collision(layer)
35    end
36    local share_callback = function()
37        share:runAction(cc.Sequence:create(cc.ScaleTo:create(0.05,1.3),cc.ScaleTo:create(0.05,0.8)))
38        if cc.Application:getInstance():getTargetPlatform() == cc.PLATFORM_OS_ANDROID then
39            cc.WeixinShare:sendToFriend()
40        end
41    end
42    local more_callback = function()
43        more:runAction(cc.Sequence:create(cc.ScaleTo:create(0.05,1.3),cc.ScaleTo:create(0.05,0.8)))
44    end
45    retry:registerScriptTapHandler(retry_callback)
46    share:registerScriptTapHandler(share_callback)
47    more:registerScriptTapHandler(more_callback)
48    --判断游戏是否开始的变量
49    self.play = false
50end

通过cc.WeixinShare:sendToFriend()调用c++层导出来的接口,注意要判断一下平台。最后需要做的就是打包apk,来测试我们写的程序是否正确。在IDE中导出包的过程中,你可能会遇到类没有实现的错误,因为我们添加了自定义的类却没有告诉编译器啊,在之前我们把自定义的类添加到Xcode工程中就是告诉编译器要编译我们新建的类,现在的平台是Android,我们要怎么告诉编译器编译我们的类呢,那就是修改.mk文件。我们需要修改俩处文件,一个是将WeixinShare.cpp添加到.mk文件中,另一个是将导出的桥接函数lua_cocos2dx_custom_auto添加到.mk文件中,这俩个mk文件的位置如图所示。

Lua小游戏别撞车——接入微信分享Lua小游戏别撞车——接入微信分享Lua小游戏别撞车——接入微信分享Lua小游戏别撞车——接入微信分享

通过这几个步骤我们就完成了微信的分享功能,这个过程刚开始比较复杂,大家在完成了某一个阶段以后最好测试一下是否正确,出现错误仔细排查一下,只要认真一些一定可以导出成功的,最后微信分享的截图如下。

Lua小游戏别撞车——接入微信分享


参考了上面的教程之后,自己也照着写了一份,确实可以实现了

不过,遇到问题jni的问题的时候还是比较难发现的。我就写错了类的路径..下面用eclipse调试c++,Android

Eclipse调试C++(Cocos2dx Android )

先说windows下的,mac下的在最后

环境:win8.1、java 1.5、Eclipse 4.3.1、ADT bundle 22.6.2.v20140321、NDK r8e、cocos2dx 2.2.3

前提:下载好cocos2dx、NDK(r8e以上版本可以不装cygwin) 、ADT bundle(带Eclipse、sdk等各种插件),配置好 JAVA_HOME、CLASSPATH、NDK_ROOT、ANDROID_SDK等环境变量;配置好Cocos2dx的Android开发环境,即可以通过ndk-build编译cocos2dx的工程生成 .so文件、生成生成jar包、能成功运行HelloCpp工程。注意:所有涉及到的目录不要有中文或者空格!

 

1、把Eclipse的workSpace目录里的 .metadata 文件删除,恩,Eclipse我设置了不自动build~~ 然后打开Eclipse把cocos2dx工程(Q:\cocos2d-x-2.2.3\cocos2dx\platform\android)和HelloCpp工程(Q:\cocos2d-x-2.2.3\samples\Cpp\HelloCpp\proj.android)导进去:File->import->Android->Existing Android Code Into WorkSpace->next<在Root Directory里填上cocos2dx工程所在的目录,按回车键,cocos2dx的工程就出现,并且会自动选上,点finish,搞定。同样,也把HelloCpp工程导进去。

 

2、TestCpp工程报错说不认识bash :Error: Program "bash" not found in PATH

 

解决:(1):给Eclipse配置好NDK路径

   (2):设置TestCpp项目的C/C++ builder :ndk-build.cmd NDK_DEBUG=1 。注意:NDK_DEBUG=1   等号左右不要留有空格

 

3、build一下TestCpp工程,会报错:

1 D:/new_soft/android-ndk-r8e/build/core/add-application.mk:128: Android NDK: WARNING: APP_PLATFORM android-9 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml   

把工程里的AndroidManifest.xml文件里<uses-sdk android:minSdkVersion="8"/>的8改成9。查了一下文章,说这是NDK的一个bug:AndroidManifest.xml里的minSdkVersion设置不能小于项目用于编译的SDK版本,而HelloCpp项目用于编译的sdk版本是 2.2.3.。。。也就是 sdkversion 是 9.。。。。

 

4、刷新,再build,还报错:

1 jni/Android.mk:19: *** Android NDK: Aborting.    .  Stop.2 Android NDK: jni/Android.mk: Cannot find module with tag 'cocos2dx' in import path    3 Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?    4 Android NDK: The following directories were searched:    5 Android NDK:         

说的是Android.mk文件里的19行 找不到 cocos2dx,大概意思是找不到这个cocos2dx这个模块,类似于#include头文件时要加上对应的搜索路径的意思,那就补上这个模块的上一层目录:打开Android.mk文件,在最后一行$(call import-module,cocos2dx) 之前加上一行: $(call import-add-path,Q:/cocos2d-x-2.2.3)。也就是加上cocos2dx这个文件夹所在的目录给mk文件去搜索。

注意里面的反斜杠:我们直接从windows下拷贝路径时 是 Q:\cocos2d-x-2.2.3的,要把 \ 改成 / 。如果你的cocos2dx工程所在的目录比较深,有很多层,要把路径里所有的 \ 都改成 / 。

 

5、刷新,再build,还报错:

1 Android NDK: Q:/cocos2d-x-2.2.3/cocos2dx/Android.mk: Cannot find module with tag 'libjpeg' in import path    2 Q:/cocos2d-x-2.2.3/cocos2dx/Android.mk:175: *** Android NDK: Aborting.    .  Stop.3 Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?    4 Android NDK: The following directories were searched:    5 Android NDK:       

恩,同样的错误,说的cocos2dx工程的Android.mk文件的175行上找不到 libjepg,注意,cocos2dx工程的mk文件不在它的工程目录下,而是在它的上两层,在 Q:/cocos2dx-2.2.3/cocos2dx 下面,打开它,在175行的$(call import-module,libjpeg)之前插入一句: $(call import-add-path,Q:/cocos2d-x-2.2.3/cocos2dx/platform/third_party/android/prebuilt)。注意斜杠转成反斜杠! 因为libjepg是第三方库,放在cocos2dx\platform\third_party\android\prebuilt这个目录里的。

 

注意:第4、5步添加 ndk module 时都是用了绝对路径,在不同电脑上都要重新配置一下。你也可以改成相对路径,可惜我还不太熟悉mk文件的一些东西,以后再改~~

 

6、再build,嗯,好像成功了,成功生成了libhellocpp.so文件~~看到libs文件夹下生成了一个gdbserver文件和gdb.setup文件没,就是因为上面设置 NDK_DEBUG=1 所以生成的,gdbserver会被部署到手机里。当触发C++断点时,相当于手机端的gdbserver是服务端,会发送一些信息到Eclipse这边,Eclipse这边的gbdserver是客户端,Eclipse这边的gdbserver接收到信息就进行相关操作,嗯,我猜的~~

 

下面说的是如何调试cpp文件

1、右键cocos2dx工程,选择 Android tools -> Add Native Support,so文件的名字不用改,点finish

2、刷新,build cocos2dx工程,报错: 

D:/new_soft/android-ndk-r8e/build/core/add-application.mk:128: Android NDK: WARNING: APP_PLATFORM android-9 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml  

把工程里的AndroidManifest.xml里 <uses-sdk android:minSdkVersion="8"/> 的 8 改成 9

 

3、刷新,build cocos2dx工程,没报错了,再build HelloCpp工程,也没报错了

4、加入需要调试的C++文件:

  (1):右键 hellocpp工程,new->folder

    

  (2):选中HelloCpp,下面点 advanced,选择最后一个选项:Link to alternate location(Linked Folder),在下面输入要导进来的cpp所在的目录(这里我填了 Q:\cocos2d-x-2.2.3\samples\Cpp\HelloCpp\Classes),点 finish即可:

      

注意:文件夹名 不能和工程里已有的文件同名

 

5、打开刚才加进来的CCNode.cpp文件,发现里面一大堆错误,包括各种#include的.h文件找不到,各种不能识别的符号或者各种 unknown symbol~~,我猜这个问题是因为只导入少数几个cpp文件,这几个cpp文件依赖的其他的cpp文件没有加进来的原因,如果把所有cpp文件都加进来估计是可以的,我没试过~~(因为libcocos2dx工程在目录cocos2dx下面,不能直接把cocos2dx这个目录加进来,要把里面的CocosDenshion、extensions等目录一个个加进来~~)

解决方法:右键cocos2dx工程,属性,C/C++ General->Code Analysis,选择 使用项目设置,然后把下面的勾都去掉,如下:

  

 

6、刷新,再build两个项目,应该都没有问题了

7、在刚才加进来的随便一个cpp文件里断点,右键选择HelloCpp工程,debug as->android native application(请用真机调试,用模拟器的话不知道有啥问题不),居然报错:

  

 

8、原来是assert文件夹里的资源没有,可能也是相对路径又问题引起的吧,没有把Resources里的资源拷过来吧,把Q:\cocos2d-x-2.2.3\samples\Cpp\HelloCpp\Resources里的所有东西拷到Q:\cocos2d-x-2.2.3\samples\Cpp\HelloCpp\proj.android\assets下,再跑,debug as->android native application,成功!

 

注意:调试C++的时候,gdbServer会有所延迟(大概有好几秒,和你的电脑和调试的手机的性能有关吧),所以你的断点最好不要加在程序启动的那些代码里,上面截图就是加在一个菜单的点击事件里的,点击关闭菜单时触发。

线程、单步、变量观察~~perfect~~

 

有些时候报以下形式的 Unknow Application ABI 错误:

这个折腾了我许久许久。。。但偏偏今晚不能重现,这种问题其实在上面已经涉及到了的,只不过这种log的形式很迷惑人,看到红色框没,只要竖着读就很清晰了:Android NDK warning:App_Platform android-14 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml .......是不是很熟悉~~~~~~有一些找不到module的如Cannot find module with tag 'cocos2dx' in import path 错误也会以这种形式报错,哎,坑爹

 

PS:因为我用的Eclipse加了个汉化包。。。但又想在文章涉及到Eclipse设置的一些东西尽量用英文版的。。。所有有些地方用文字说的和截图的有所差别,见谅~~

发布release版本时记得把工程属性里配置的 NDK_DEBUG=1去掉~~

感觉这个东西的重点就在于了解Android.mk文件吧,把里面的配置看懂,在这过程中看报什么错,就对应修改就是了。反正暂时我还是不怎么了解,所以文章里充满了大量的我猜等字眼~~先用着,再研究吧

 

mac下也差不多是这个步骤,如果大家有什么问题的话,把详细信息贴出来,我尽量把我知道的分享出来~~

mac下明明配置了NDK_ROOT,Eclipse运行的时候一直说找不到:直接在对应工程的mk文件的首行设置 NDK_ROOT="~~~~~~~~~~"  (~~~表示你的ndk所在的目录,如: D:/new_soft/android-ndk-r8e)

处理完上面的步骤之后,我还需要在android.mk文件中添加如下路径,不然无法识别$(call import-module,scripting/lua-bindings),因此在这句的前面添加如下代码:

$(call import-add-path, I:\Cocos2dx\WeiXinShare\frameworks\cocos2d-x)\
$(call import-add-path, I:\Cocos2dx\WeiXinShare\frameworks\cocos2d-x\cocos)\
$(call import-add-path, I:\Cocos2dx\WeiXinShare\frameworks\cocos2d-x\external\)\


不过在eclipse下调试c++的时候,还是遇到了一个暂时无法解决的问题,导致无法调试:

[2015-03-24 00:35:22 - WeiXinShare] Unknown Android version on device.
[2015-03-24 00:42:56 - WeiXinShare] Unknown Android version on device.
[2015-03-24 00:43:53 - WeiXinShare] gdbserver output:
[2015-03-24 00:43:53 - WeiXinShare] run-as: Package 'org.monkey.com' is unknown


[2015-03-24 00:43:53 - WeiXinShare] Verify if the application was built with NDK_DEBUG=1

以后解决了在进行补充,现在暂时就通过打印来进行调试吧。

0 0