相关疑难解决方法(0)

Android AdMob导致内存泄漏?

我已将AdMob v4.1.0集成到我的应用程序中,它似乎导致了巨大的内存泄漏(非常确定它已经发生在4.0.4上).

为了隔离问题,我创建了一个具有空白线性布局的新项目,并向其添加了AdView(这实际上是AdMob提供的示例代码中的复制和粘贴).请参阅我的main.xml,MainActivity.java和清单内容:

main.xml中:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/linearLayout">
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

MainActivity.java:

package AdsTry.main;

import com.google.ads.AdRequest;
import com.google.ads.AdSize;
import com.google.ads.AdView;

import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;

public class MainActivity extends Activity {

    private final int AD_VIEW_ID = 1000000; 

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

         // Lookup R.layout.main
        LinearLayout layout = (LinearLayout)findViewById(R.id.linearLayout);

        // Create the adView
        // Please replace MY_BANNER_UNIT_ID with your …
Run Code Online (Sandbox Code Playgroud)

memory android memory-leaks admob

21
推荐指数
3
解决办法
9984
查看次数

Android Admob 插页式内存泄漏

我试图在某些活动结束时显示插页式广告。问题是插页式广告似乎阻止了活动被垃圾收集,从而导致内存不足异常。我该如何解决这个问题?提前致谢。

public class AdActivity extends FragmentActivity{

//...

protected InterstitialAd interstitial;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //...

    // Create the interstitial.
    interstitial = new InterstitialAd(this);
    interstitial.setAdUnitId(INTERSTITIAL_UNIT_ID);

    // Create ad request.
    AdRequest adRequest2 = new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .addTestDevice(deviceId)
            .build();

    // Begin loading interstitial.
    interstitial.loadAd(adRequest2);
}

@Override
public void onPause() {
    super.onPause();
    displayInterstitial();
}


public void displayInterstitial() {
    if (interstitial.isLoaded() && System.currentTimeMillis() >= lastInterstitial + timeLag * 1000) {
        lastInterstitial = System.currentTimeMillis();
        interstitial.show();
    }
}
Run Code Online (Sandbox Code Playgroud)

我这样使用它:

public class ActivityA extends AdActivity{ //... …
Run Code Online (Sandbox Code Playgroud)

java android memory-leaks out-of-memory admob

3
推荐指数
1
解决办法
1846
查看次数

标签 统计

admob ×2

android ×2

memory-leaks ×2

java ×1

memory ×1

out-of-memory ×1