ppjun's blog

Thanks for your watching


  • 首頁

  • 歸檔

  • 關於

  • 檢索
close

android studio配置lambda

發表於 2016-02-26   |  

1、什么是Lambda

Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁。当开发者在编写Lambda表达式时,也会随之被编译成一个函数式接口。下面这个例子就是使用Lambda语法来代替匿名的内部类,代码不仅简洁,而且还可读。_来源百度百科

使用Lambda前

1
2
3
4
5
6
7

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//dosomething
}
});

使用lambda后

1
2
3
4
button.setOnClickListener(
v -> {
//dosomething
});

2、AndroidStudio怎么配置Lambda

在build.gradle(Moudle:app)

1
2
3
4
5
6
7
8
9

apply plugin:'me.tatarka.retrolambda'

android{
compileOptions{
sourceCompatibility org.gradle.api.JavaVersion.VERSION_1_8
targetCompatibility org.gradle.api.JavaVersion.VERSION_1_8
}
}

在build.gradle(Project:项目名)

1
2
3
4
5
6
7
8
9
buildscript {

dependencies {
classpath 'com.android.tools.build:gradle:2.0.0-beta6'
classpath 'me.tatarka:gradle-retrolambda:3.2.4'

}

}

以上配置完毕。

如何科学上网

發表於 2016-02-24   |  

在window上的科学上网

方法一 :影梭ShadowSocks

1、下载shadowsocks软件

百度网盘下载链接

2、打开shadowsocks 输入shadowsocks账号

ps :免费账号获取方式 打开链接 进入ishadowsocks (每6小时更换一次密码 中午12点左右换一次的)

方法二 :蓝灯Lantern

Lantern是一个免费的应用程序。它能帮助你随时随地快速、可靠、安全地访问互联网。

蓝灯官网(需翻墙) https://getlantern.org/
蓝灯github https://github.com/getlantern/lantern

下载window版本安装后无需配置就可以直接科学上网 https://raw.githubusercontent.com/getlantern/lantern-binaries/master/lantern-installer-beta.exe

Cocos2d-x接入第三方SDK

發表於 2016-01-11   |  

Cocos2d-x游戏接入安卓第三方SDK

1.概述

U3D游戏和Cocos2dx手游都会接入不同渠道的支付方式,本文运用jni知识以360渠道接入作为演示。

2.环境

OS: win10
IDE: Eclipse
Adnroid NDK:r10e
cocos2d-x-3.9

3.创建Cocos2d-x工程

运行命令

cocos new -p com.ohj.cocos2dx360 -l cpp -d Cocos2dx360SDK

然后进入Cocos2dx360SDK-MyCppGame-proj.android执行build_native.py 生成.so文件

编译成功后你会在libs-armeabi看到libcocos2dcpp.so

最后导入Eclipse,是导入2个工程 ,分别是MyCppGame和库libcocos2dx。(导入EC时注意不要复制工程项目到工作区间)

4.开始配置360SDK

导入assets、lib文件,配置好AndroidManifest.xml

在AppActivity.java 的OnCreate初始化

1
2
3
4
5
6
7
8
9
   @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);

mContext = this;
Matrix.init(this);

}

接着创建静态登录方法,直接调用360的登录方法

1
2
3
4
5
6
7
public static void  login360(){

Intent intent = getLoginIntent();
IDispatcherCallback callback = mLoginCallback;
Matrix.execute(mContext, intent, callback);

}

5.jni调用登录方法

在classes下创建SDK360.h 和SDK.cpp

SDK360.h 代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  #ifndef __SDK360_H__
#define __SDK360_H__

#include "cocos2d.h"

#include <string>
using namespace cocos2d;
using namespace std;
class SDK360
{
public:
SDK360();
virtual ~SDK360();
static SDK360* getInstance();
void login();
};


#endif // __SDK360_H__

SDK360.cpp 代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
    #include "SDK360.h"
#include <string>
#include <jni.h>
#include "cocos2d.h"
#include "platform/android/jni/JniHelper.h"

using namespace std;
static SDK360* mInstance=NULL;
SDK360::SDK360()
{
}
SDK360::~SDK360()
{
}
SDK360* SDK360::getInstance()
{
if(NULL==mInstance)
{
mInstance=new SDK360();
}
return mInstance;
}

void SDK360::login()
{

#if(CC_TARGET_PLATFORM==CC_PLATFORM_ANDROID)
JniMethodInfo minfo;
bool isHave=JniHelper::getStaticMethodInfo(minfo,"org/cocos2dx/cpp/AppActivity","login360","()V");
if(!isHave){

}else{
minfo.env->CallStaticVoidMethod(minfo.classID,minfo.methodID);
minfo.env->DeleteLocalRef(minfo.classID);

}
#endif

}

我们会在原工程右下角调用登录方法,需要修改HelloWorldScence.cpp

1
2
3
4
5
6
7
#include "SDK360.h"
...

void HelloWorld::menuCloseCallback(Ref* pSender)
{
SDK360::getInstance()->login();
}

最后在工程目录下jni-Android.mk 调用刚写好的SDK360.cpp

1
2
3
4
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/SDK360.cpp \
../../Classes/HelloWorldScene.cpp

修改过c++文件都要重新编译一下.so文件
执行build_native.py 编译成功后你就可以run运行起来了。

ps: 调用360支付也同样道理.

Demo下载。

VirtualBox 遇到VERR _INTNET _FLT _IF _NOT _FOUND

發表於 2015-12-10   |  

解决win10升级TH2后 VirtualBox出现VERR _INTNET _FLT _IF _NOT _FOUND问题

出自

http://tieba.baidu.com/p/4177034202

http://superuser.com/questions/1002160/failed-to-start-virtual-device-in-oracle-virtual-box

问题描述

win10升级TH2后virtualbox无法正常运行,virtualbox关键错误VERR _INTNET _FLT _IF _NOT _FOUND

解决办法

打开 网络和共享中心-更改适配器设置-选择VirtualBox Host-Only Network-右击属性

把VirtualBox NDIS6 Bridged Networking Driver 选择上就OK可以运行genymotion了

1…56
区汇君

区汇君

34 文章
26 標籤
GitHub Weibo
© 2015 - 2017 区汇君
由 Hexo 強力驅動
主題 - NexT.Pisces