1

FacebookとFirebaseで簡単な認証をアーカイブしようとしています。しかし、何とか私の割り当てられた記憶は狂ったように増加しています。私はそれを引き起こしている何の手掛かりがありません..何か私を助けるだろうか?FirebaseとFacebookの認証でメモリが急増しています

参照することは困難であるが、割り当てられたサイズが約0.2 MB/sの

memory monitor

MainActivity

public class MainActivity extends AppCompatActivity { 

    private static final String TAG = "MainActivity"; 
    private Intent navigationIntent; 

    private SharedPreferences sharedPreferences; 

    // FIREBASE 
    private FirebaseAPI firebaseAPI; 
    private FirebaseAuth firebaseAuth; 
    private FirebaseAuth.AuthStateListener firebaseAuthListener; 

    // FACEBOOK 
    private CallbackManager FBcallbackManager; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 

     navigationIntent = new Intent(this, NavigationActivity.class); 

     // Initialize Firebase 
     firebaseAuth = FirebaseAuth.getInstance(); 

     firebaseAuthListener = new FirebaseAuth.AuthStateListener() { 
      @Override 
      public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 
       FirebaseUser user = firebaseAuth.getCurrentUser(); 

       if (user != null) { 
        user.getToken(false).addOnCompleteListener(new OnCompleteListener<GetTokenResult>() { 
         @Override 
         public void onComplete(@NonNull Task<GetTokenResult> task) { 
          sharedPreferences.edit() 
            .putString("token", task.getResult().getToken()) 
            .apply(); 

          Profile.fetchProfileForCurrentAccessToken(); 
          firebaseAPI = new FirebaseAPI(); 
          firebaseAPI.writeUserProfile(Profile.getCurrentProfile()); 

          startHomeActivity(); 
         } 
        }); 
       } 
      } 
     }; 

     // Initialize Facebook Login button 
     FBcallbackManager = CallbackManager.Factory.create(); 
     final LoginButton loginButton = (LoginButton) findViewById(R.id.facebook_button); 
     loginButton.setReadPermissions("email", "public_profile"); 
     loginButton.registerCallback(FBcallbackManager, new FacebookCallback<LoginResult>() { 
      @Override 
      public void onSuccess(LoginResult loginResult) { 
       handleFacebookAccessToken(loginResult.getAccessToken()); 
      } 

      @Override 
      public void onCancel() { 

      } 

      @Override 
      public void onError(FacebookException error) { 

      } 
     }); 


    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     FBcallbackManager.onActivityResult(requestCode, resultCode, data); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     firebaseAuth.addAuthStateListener(firebaseAuthListener); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     if (firebaseAuthListener != null) { 
      firebaseAuth.removeAuthStateListener(firebaseAuthListener); 
     } 

    } 

    private void handleFacebookAccessToken(AccessToken accessToken) { 

     final AuthCredential authCredential = FacebookAuthProvider.getCredential(accessToken.getToken()); 

     firebaseAuth.signInWithCredential(authCredential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
      @Override 
      public void onComplete(@NonNull Task<AuthResult> task) { 

      } 
     }); 

    } 


    private void startHomeActivity() { 
     if (navigationIntent != null) { 

      startActivity(navigationIntent); 
      finish(); 
     } 
    } 

アプリケーション

public class App extends Application { 

    private static Context context; 

    public static Context getContext() { 
     return context; 
    } 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     FacebookSdk.sdkInitialize(getApplicationContext()); 
     AppEventsLogger.activateApp(this); 
     App.context = getApplicationContext(); 
    } 
} 
で増加しています

build.gradle(アプリ)

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 24 
    buildToolsVersion "24" 

    defaultConfig { 
     applicationId "com.xxxxx.xxxxxxxxxx" 
     minSdkVersion 16 
     targetSdkVersion 24 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

repositories { 
    mavenCentral() 
    flatDir { 
     dirs 'libs' 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile 'com.facebook.android:facebook-android-sdk:4.13.1' 
    compile 'com.google.code.gson:gson:2.7' 
    compile 'com.google.firebase:firebase-database:9.0.2' 
    compile 'com.google.firebase:firebase-auth:9.0.2' 
    compile 'com.google.firebase:firebase-crash:9.0.2' 
    compile 'com.squareup.okhttp3:okhttp:3.3.1' 
    compile 'com.google.android.gms:play-services-location:9.0.2' 
    compile 'com.squareup.picasso:picasso:2.5.2' 
    compile 'com.squareup.retrofit2:retrofit:2.1.0' 
    compile 'com.squareup.retrofit2:converter-gson:2.1.0' 
    compile 'com.android.support:recyclerview-v7:24.0.0' 
    compile 'com.android.support:cardview-v7:24.0.0' 
    compile 'com.android.support:design:24.0.0' 
    compile 'com.android.support:appcompat-v7:24.0.0' 
    compile 'com.android.support:preference-v14:24.0.0' 
} 

apply plugin: 'com.google.gms.google-services' 

build.gradle(プロジェクト)

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.1.2' 
     classpath 'com.google.gms:google-services:3.0.0' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 


} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

答えて

0

完全に私のプロジェクトを削除し、バージョン管理から、それを再構築した後、メモリのバグは(..姿を消した:

0

だけの推測:あなたのビルドからクラッシュレポート]を削除してください。サブクラスApplicationのアプリに影響するdocumentation describes a known issueApp.onCreate()メソッドで実行する初期化が何を行うのかははっきりしませんが、既知の問題の説明で説明しているように、その処理はアプリプロセスの1回とクラッシュレポートプロセスの2回です。

+0

私の質問に答えるためのおかげで、悲しいことに、これは:(機能していません。しかし、バグを指摘してくれてありがとう(。: – tom12e

関連する問題