diff --git a/app/build.gradle b/app/build.gradle index ed853e9dae..d3ee40ee5e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -188,6 +188,7 @@ android { buildConfigField "String", "DEV_VAPI_HOST", "\"${DEV_VAPI_HOST}\"" buildConfigField "String", "QUICK_LOGIN_APPID", "\"${DEV_QUICK_LOGIN_APPID}\"" buildConfigField "String", "QUICK_LOGIN_APPKEY", "\"${DEV_QUICK_LOGIN_APPKEY}\"" + buildConfigField "String", "CSJ_APPID", "\"${DEV_CSJ_APPID}\"" } // publish, 发布时候使用的 flavor,接口仅包含正式环境 @@ -199,6 +200,7 @@ android { buildConfigField "String", "DEV_VAPI_HOST", "\"${VAPI_HOST}\"" buildConfigField "String", "QUICK_LOGIN_APPID", "\"${QUICK_LOGIN_APPID}\"" buildConfigField "String", "QUICK_LOGIN_APPKEY", "\"${QUICK_LOGIN_APPKEY}\"" + buildConfigField "String", "CSJ_APPID", "\"${CSJ_APPID}\"" } tea { @@ -209,6 +211,7 @@ android { buildConfigField "String", "DEV_VAPI_HOST", "\"${VAPI_HOST}\"" buildConfigField "String", "QUICK_LOGIN_APPID", "\"${QUICK_LOGIN_APPID}\"" buildConfigField "String", "QUICK_LOGIN_APPKEY", "\"${QUICK_LOGIN_APPKEY}\"" + buildConfigField "String", "CSJ_APPID", "\"${CSJ_APPID}\"" manifestPlaceholders.put("APPLOG_SCHEME", "rangersapplog.byAx6uYt".toLowerCase()) } @@ -221,6 +224,7 @@ android { buildConfigField "String", "DEV_VAPI_HOST", "\"${VAPI_HOST}\"" buildConfigField "String", "QUICK_LOGIN_APPID", "\"${QUICK_LOGIN_APPID}\"" buildConfigField "String", "QUICK_LOGIN_APPKEY", "\"${QUICK_LOGIN_APPKEY}\"" + buildConfigField "String", "CSJ_APPID", "\"${CSJ_APPID}\"" } gdt { @@ -231,6 +235,7 @@ android { buildConfigField "String", "DEV_VAPI_HOST", "\"${VAPI_HOST}\"" buildConfigField "String", "QUICK_LOGIN_APPID", "\"${QUICK_LOGIN_APPID}\"" buildConfigField "String", "QUICK_LOGIN_APPKEY", "\"${QUICK_LOGIN_APPKEY}\"" + buildConfigField "String", "CSJ_APPID", "\"${CSJ_APPID}\"" } } } diff --git a/app/src/main/java/com/gh/ad/AdDelegateHelper.kt b/app/src/main/java/com/gh/ad/AdDelegateHelper.kt index 22b219249c..d9da195967 100644 --- a/app/src/main/java/com/gh/ad/AdDelegateHelper.kt +++ b/app/src/main/java/com/gh/ad/AdDelegateHelper.kt @@ -17,6 +17,7 @@ import com.gh.common.exposure.ExposureManager import com.gh.common.util.DirectUtils.directToLinkPage import com.gh.common.util.LogUtils import com.gh.common.util.NewFlatLogUtils.logOpenScreenAdSkip +import com.gh.gamecenter.BuildConfig import com.gh.gamecenter.MainActivity import com.gh.gamecenter.R import com.gh.gamecenter.common.base.activity.BaseActivity @@ -159,7 +160,7 @@ object AdDelegateHelper { if (mIsCsjRequired && mCsjAdImpl == null) { mCsjAdImpl = ARouter.getInstance().build(RouteConsts.provider.csjAd).navigation() as? ICsjAdProvider - mCsjAdImpl?.initSDK(context, HaloApp.getInstance().oaid) + mCsjAdImpl?.initSDK(context, BuildConfig.CSJ_APPID, HaloApp.getInstance().oaid) // 监听亮色/暗色模式切换 DarkModeUtils.registerModeChangeListener { val topActivity = CurrentActivityHolder.getCurrentActivity() ?: return@registerModeChangeListener diff --git a/feature/csj_ad/proguard-rules.pro b/feature/csj_ad/proguard-rules.pro index 481bb43481..599377b483 100644 --- a/feature/csj_ad/proguard-rules.pro +++ b/feature/csj_ad/proguard-rules.pro @@ -18,4 +18,5 @@ # If you keep the line number information, uncomment this to # hide the original source file name. -#-renamesourcefileattribute SourceFile \ No newline at end of file +#-renamesourcefileattribute SourceFile +-keep class android.content.ContentProvider {;} \ No newline at end of file diff --git a/feature/csj_ad/src/main/AndroidManifest.xml b/feature/csj_ad/src/main/AndroidManifest.xml index cbd8f69c43..4144f32771 100644 --- a/feature/csj_ad/src/main/AndroidManifest.xml +++ b/feature/csj_ad/src/main/AndroidManifest.xml @@ -54,6 +54,12 @@ android:authorities="${applicationId}.TTMultiProvider" android:exported="false" /> + + \ No newline at end of file diff --git a/feature/csj_ad/src/main/java/com/gh/gamecenter/csj/CsjAdHelper.kt b/feature/csj_ad/src/main/java/com/gh/gamecenter/csj/CsjAdHelper.kt index 014c913f46..ed99d091b2 100644 --- a/feature/csj_ad/src/main/java/com/gh/gamecenter/csj/CsjAdHelper.kt +++ b/feature/csj_ad/src/main/java/com/gh/gamecenter/csj/CsjAdHelper.kt @@ -12,20 +12,33 @@ import com.bytedance.sdk.openadsdk.TTAdNative.CSJSplashAdListener import com.bytedance.sdk.openadsdk.TTAdNative.NativeExpressAdListener import com.bytedance.sdk.openadsdk.TTAdSdk.InitCallback import com.bytedance.sdk.openadsdk.TTNativeExpressAd.ExpressAdInteractionListener +import com.bytedance.sdk.openadsdk.stub.server.MainServerManager import com.gh.gamecenter.common.utils.PackageFlavorHelper import com.gh.gamecenter.common.utils.doOnFragmentDestroy import com.lightgame.utils.Utils +import java.lang.reflect.Field object CsjAdHelper { const val TAG = "CsjAdHelper" - fun init(context: Context, oaid: String) { + fun init(context: Context, csjId: String, oaid: String) { + + try { + val serverContentProvider = MainServerManager() + val contextField: Field = serverContentProvider.javaClass.superclass.superclass.getDeclaredField("mContext") + contextField.isAccessible = true + contextField.set(serverContentProvider, context) + serverContentProvider.onCreate() + } catch (e: Exception) { + e.printStackTrace() + } + // 强烈建议在应用对应的Application#onCreate()方法中调用,避免出现content为null的异常 TTAdSdk.init( context, TTAdConfig.Builder() - .appId("5410486")// xxxxxxx为穿山甲媒体平台注册的应用ID + .appId(csjId)// xxxxxxx为穿山甲媒体平台注册的应用ID .useTextureView(true) // 默认使用SurfaceView播放视频广告,当有SurfaceView冲突的场景,可以使用TextureView .appName("光环助手") .titleBarTheme(TTAdConstant.TITLE_BAR_THEME_DARK)//落地页主题 diff --git a/feature/csj_ad/src/main/java/com/gh/gamecenter/csj/CsjAdProviderImpl.kt b/feature/csj_ad/src/main/java/com/gh/gamecenter/csj/CsjAdProviderImpl.kt index 35e559d09c..7b005e2789 100644 --- a/feature/csj_ad/src/main/java/com/gh/gamecenter/csj/CsjAdProviderImpl.kt +++ b/feature/csj_ad/src/main/java/com/gh/gamecenter/csj/CsjAdProviderImpl.kt @@ -10,8 +10,8 @@ import com.gh.gamecenter.core.provider.ICsjAdProvider @Route(path = RouteConsts.provider.csjAd, name = "csj广告暴露服务") class CsjAdProviderImpl : ICsjAdProvider { - override fun initSDK(context: Context, oaid: String) { - CsjAdHelper.init(context, oaid) + override fun initSDK(context: Context, id: String, oaid: String) { + CsjAdHelper.init(context, id, oaid) } override fun requestSplashAd( diff --git a/gradle.properties b/gradle.properties index 02dd89cc0e..6499b7b765 100644 --- a/gradle.properties +++ b/gradle.properties @@ -52,6 +52,9 @@ QUICK_LOGIN_APPKEY=002BAABA2C078342DA33BEAB0A4C6A25 DEV_QUICK_LOGIN_APPID=300012281661 DEV_QUICK_LOGIN_APPKEY=1BFAB6E349F1D69CC06ABAD9D7A43FB8 +DEV_CSJ_APPID=5410486 +CSJ_APPID=5429125 + # hosts DEV_API_HOST=https\://dev-and-api.ghzs.com/v5d5d0/ API_HOST=https\://and-api.ghzs.com/v5d5d0/ diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/ICsjAdProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/ICsjAdProvider.kt index 6854019e46..7b75a3173a 100644 --- a/module_core/src/main/java/com/gh/gamecenter/core/provider/ICsjAdProvider.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/ICsjAdProvider.kt @@ -8,7 +8,7 @@ import com.alibaba.android.arouter.facade.template.IProvider interface ICsjAdProvider : IProvider { - fun initSDK(context: Context, oaid: String) + fun initSDK(context: Context, id: String, oaid: String) fun requestSplashAd( activity: Activity,