Java 有些听众没有开火
我正在集成一个Android ad SDK,它实现了许多侦听器。有些侦听器在我的应用程序中没有启动。例如,OnAddLoaded将启动,但OnAddSplayed不会启动。这在SDK提供的示例应用程序中运行得非常好,这导致人们认为这是集成的问题。然而,我找不到任何导致这个问题的原因。这绝对是我从未见过的奇怪行为。我知道我在这里抓救命稻草,但是假设说一些听众没有注册而其他人注册的原因是什么?我如何调试这个 下面是一些代码:Java 有些听众没有开火,java,android,listener,Java,Android,Listener,我正在集成一个Android ad SDK,它实现了许多侦听器。有些侦听器在我的应用程序中没有启动。例如,OnAddLoaded将启动,但OnAddSplayed不会启动。这在SDK提供的示例应用程序中运行得非常好,这导致人们认为这是集成的问题。然而,我找不到任何导致这个问题的原因。这绝对是我从未见过的奇怪行为。我知道我在这里抓救命稻草,但是假设说一些听众没有注册而其他人注册的原因是什么?我如何调试这个 下面是一些代码: ad = new InterstitialAd(lastA
ad = new InterstitialAd(lastActivity, placementId);
ad.setAdListener(new InterstitialAdListener() {
//doesn't fire
@Override
public void onInterstitialDisplayed(Ad ad) {
Log.e(TAG, "INTERSTITIAL DISPLAYED");
Toast.makeText(lastActivity, "onInterstitialDisplayed", Toast.LENGTH_SHORT).show();
}
//doesn't fire
@Override
public void onInterstitialDismissed(Ad ad) {
Log.e(TAG, "INTERSTITIAL DISMISSED");
Toast.makeText(lastActivity, "onInterstitialDismissed", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(Ad ad, AdError adError) {
Log.e(TAG, "ERROR! " + adError.getErrorMessage());
Toast.makeText(lastActivity, "onError", Toast.LENGTH_SHORT).show();
}
@Override
public void onAdLoaded(Ad ad) {
Log.e(TAG, "AD LOADED!");
AdAdapter.this.ad.show();
Toast.makeText(lastActivity, "onAdLoaded", Toast.LENGTH_SHORT).show();
}
//doesn't fire
@Override
public void onAdClicked(Ad ad) {
Log.e(TAG, "AD CLICKED!");
Toast.makeText(lastActivity, "onAdClicked", Toast.LENGTH_SHORT).show();
}
});
ad.loadAd();
我终于明白了原因。我对SDK进行了反编译,以便仔细查看。包名被硬编码到一些与非触发侦听器相关的条件中。我在构建脚本中重构了它们的包名,但脚本忽略了字符串。因此,由于软件包名称已更改,它们自然不会触发。如果onAdLoaded出现问题,则可能是显示问题,如果SDK认为广告未完全显示,则不会调用此命令。你能发布一些XML吗?你在使用
com.google.android.gms.ads.alad
?如果是这样,则setAdListener
需要一个AdListener
对象,该对象不定义onInterstitialDisplayed
或oninterstitialdisposed
,因此它将解释为什么它们从未被激发。。。