내 안드로이드 응용 프로그램에 광고를 구현하려고합니다. 나는 내 XML 레이아웃에 광고를 추가 할 때 메모리 누수가 의심되어이 게시물에 설명 된 접근 방법을 시도했다. - Admob Memory Leak - avoiding by using empty activity최근 활동에서 활동이 시작되지 않음 : - Android
광고가 렌더링되고 내 앱 화면 사이에있는 경우 클릭하면 문제가되지 않는다. 실수하고 내가 최근 응용 프로그램을 선택 광산에 가면 장치의 홈 버튼, 나는 오류를 얻을 : - 내 AdMobActivity의
03-22 22:17:56.604: E/AndroidRuntime(27206): Caused by: java.lang.IllegalStateException: This activity should be created only once during the entire application life
03-22 22:17:56.604: E/AndroidRuntime(27206): at com.xyz.watch.AdMobActivity.<init>(AdMobActivity.java:16)
03-22 22:17:56.604: E/AndroidRuntime(27206): at java.lang.Class.newInstanceImpl(Native Method)
03-22 22:17:56.604: E/AndroidRuntime(27206): at java.lang.Class.newInstance(Class.java:1409)
03-22 22:17:56.604: E/AndroidRuntime(27206): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
03-22 22:17:56.604: E/AndroidRuntime(27206): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
03-22 22:17:56.604: E/AndroidRuntime(27206): ... 11 more
03-22 22:17:56.684: W/System.err(27206): java.io.FileNotFoundException: /data/plog.log (Permission denied)
발사 모드는 이유 먹으 렴 그래서 아마 singleInstance입니다. 이 기능이 작동하려면 어떻게해야합니까?
업데이트 : - 내 코드를 처음 시작 활동 내부
(MainActivity)
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DatabaseAdapter databaseAdapter = new DatabaseAdapter(
getApplicationContext());
databaseAdapter.open();
databaseAdapter.close();
}
@Override
protected void onResume() {
super.onResume();
if (AdMobActivity.AdMobMemoryLeakWorkAroundActivity == null) {
Log.i("CHAT", "starting the AdMobActivity");
AdMobActivity.startAdMobActivity(this);
}
}
AdMobActivity : -
public final class AdMobActivity extends Activity {
public static AdMobActivity AdMobMemoryLeakWorkAroundActivity;
public AdMobActivity() {
super();
if (AdMobMemoryLeakWorkAroundActivity != null) {
throw new IllegalStateException("This activity should be created only once during the entire application life");
}
AdMobMemoryLeakWorkAroundActivity = this;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i("CHAT", "in onCreate - AdMobActivity");
finish();
}
public static final void startAdMobActivity(Activity activity) {
Log.i("CHAT", "in startAdMobActivity");
Intent i = new Intent();
i.setComponent(new ComponentName(activity.getApplicationContext(), AdMobActivity.class));
activity.startActivity(i);
}
}
라인 없음. 16은
throw new IllegalStateException("This activity should be created only once during the entire application life");
혹시 onResume 메소드 내부에서 Admob 관련 코드를 이동하려 했습니까? –
없고 .. 내가 그렇게 해보자 .. –
더 ... 여전히 같은 오류 –