https://mp.weixin.qq.com/s/-0H36WDyDcGy4hCEL-CXmw
0、核心思路:
js可以调用java的静态方法,jsb函数
java也可以调用js的方法
1、创建libs文件夹,并copy open_ad_sdk.aar
注意要在studio内创建libs目录(project视角)!后面的操作也是,每操作一步,File->sync project with gradle files
如果发现 有问题
打开项目主工程(通常是app module)的build.gradle
将compileSdkVersion指定为28
android {
//编译版本号
compileSdkVersion 28
.....................
}
2、用android studio打开项目,在Gradle Scripts下的 build.gradle(Module:cyboss),注意有多个同名文件
在dependencies{
下copy
implementation('com.android.support:support-v4:24.2.0')
}
在 defaultConfig添加
ndk {
// 设置支持的 SO 库构架,注意这里要根据你的实际情况来设置 abiFilters ‘armeabi-v7a’, ‘arm64-v8a’, ‘x86’, ‘x86_64’, ‘arm64-v8a’
abiFilters 'armeabi-v7a'
}
3、
AndroidManifest 配置 permission 和 provider
provider 放在<application>标签内
4、AppActivity.java 需要引用
import android.content.Intent;
import android.content.res.Configuration;
import com.bytedance.sdk.openadsdk.TTAdConfig;
import com.bytedance.sdk.openadsdk.TTAdConstant;
import com.bytedance.sdk.openadsdk.TTAdManager;
import com.bytedance.sdk.openadsdk.TTAdSdk;
5、遇到未定义的类型,也需要引用
import com.bytedance.sdk.openadsdk.TTAdNative;
6、JS内调用java的静态方法
jsb方法,可以调用java类里面的静态方法
反过来也可以
7、xml配置
android:name="org.cocos2dx.javascript.MyApplication"
放在applicaiton 标签的第一个
8、express模版广告
AdSlot adSlot = new AdSlot.Builder()
.setCodeId(codeId)
.setSupportDeepLink(true)
.setImageAcceptedSize(1080, 1920)
.setRewardAmount(1) //奖励的数量
//模板广告需要设置期望个性化模板广告的大小,单位dp,激励视频场景,只要设置的值大于0即可
.setExpressViewAcceptedSize(500,500)
.setUserID("5081714")//用户id,必传参数
.setOrientation(orientation) //必填参数,期望视频的播放方向:TTAdConstant.HORIZONTAL 或 TTAdConstant.VERTICAL
.build();
激励视频等可能是模版类型的广告,参数需要使用express;
9、android resource link问题
关闭项目,重启
10、MyApplicaiton.java
package org.cocos2dx.javascript;
import android.app.Application;
public class MyApplication extends Application {
@Override
public void onCreate(){
super.onCreate();
//穿山甲SDK初始化
//强烈建议在应用对应的Application#onCreate()方法中调用,避免出现content为null的异常
TTAdManagerHolder.init(this);
}
}
11、TTAdManagerHolder.java 从sdk demo 内 copy进来
12、AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.orgngt.cyboss.yyh"
android:installLocation="auto">
<uses-feature android:glEsVersion="0x00020000" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.GET_TASKS" /> <!-- 可选,向开发者声明获取定位后,才可慎重添加此权限,