1***@qq.com
1***@qq.com
  • 发布:2024-07-12 09:24
  • 更新:2024-07-12 11:09
  • 阅读:170

uni-ad使用安卓原生sdk播放广告报错

分类:uniCloud

flutter项目中创建了插件,使用通道和原生进行通信。
初始化广告时没问题,播放激励视频报错。
sdk使用的最新版5.4.0,flutter项目使用的gradle版本为7.6.3。

插件中和flutter通信部分代码:

@Override  
  public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) {  
    if (call.method.equals("getPlatformVersion")) {  
      result.success("Android " + android.os.Build.VERSION.RELEASE);  
    } else if (call.method.equals("initAd")) {  //  广告初始化  
      initAd();  
      // 如果不需要回调数据,参数填null  
      result.success(null);  
    } else if (call.method.equals("showAd")) {  //  播放广告  
      showAd.showAd("reward");  
      result.success(null);  
    } else {  
      result.notImplemented();  
    }  
  }

插件中播放激励视频的代码如下:

package com.example.uni_ad;  

import android.os.Bundle;  

import androidx.annotation.Nullable;  
import androidx.appcompat.app.AppCompatActivity;  

import org.json.JSONArray;  
import org.json.JSONObject;  

import io.dcloud.ads.core.entry.DCloudAdSlot;  
import io.dcloud.ads.core.v2.reward.DCRewardAd;  
import io.dcloud.ads.core.v2.reward.DCRewardAdListener;  
import io.dcloud.ads.core.v2.reward.DCRewardAdLoadListener;  

public class ShowAd extends AppCompatActivity {  
  @Override  
  protected void onCreate(@Nullable Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.show_ad);  
  }  

  public void showAd(String type) {  
    switch (type) {  
      case "reward": {  
        showReward();  
        break;  
      }  
    }  
  }  

  DCRewardAd rewardAd;  
  /// 激励视频  
  private void showReward() {  
    System.out.println("播放激励视频");  
    if (rewardAd == null) {  
      rewardAd = new DCRewardAd(this);  
      rewardAd.setRewardAdListener(new DCRewardAdListener() {  
        @Override  
        public void onReward(JSONObject jsonObject) {  

        }  

        @Override  
        public void onShow() {  

        }  

        @Override  
        public void onClick() {  

        }  

        @Override  
        public void onVideoPlayEnd() {  

        }  

        @Override  
        public void onSkip() {  

        }  

        @Override  
        public void onClose() {  

        }  

        @Override  
        public void onShowError(int i, String s) {  

        }  
      });  

      DCloudAdSlot slot = new  DCloudAdSlot.Builder().adpid("1974621980").build();  
      rewardAd.load(slot, new DCRewardAdLoadListener() {  
        @Override  
        public void onRewardAdLoad() {  
          rewardAd.show(ShowAd.this);  
        }  

        @Override  
        public void onError(int i, String s, @Nullable JSONArray jsonArray) {  
          System.out.println(s);  
        }  
      });  
    }  
  }  

}  
2024-07-12 09:24 负责人:无 分享
已邀请:
DCloud_Android_zl

DCloud_Android_zl

使用原生SDK中带的demo试一下有没有问题

  • 1***@qq.com (作者)

    试了下是可以的,但是用flutter还是报这个错

    2024-07-12 15:11

  • DCloud_Android_zl

    回复 1***@qq.com: 提供一下完整的报错信息

    2024-07-12 15:42

  • 1***@qq.com (作者)

    回复 DCloud_Android_zl: 完整的报错信息就是上面的,编辑了问题中的代码,你看下

    2024-07-12 16:18

  • DCloud_Android_zl

    回复 1***@qq.com: 错误日志被部分截掉了,需要提供一个完整的。然后把initad的代码也发出来

    2024-07-12 17:36

要回复问题请先登录注册