使用Firebase构建APK的Android正常工作,但释放APK崩溃


public class Gallery extends AppCompatActivity {
static ArrayList<String> images;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gallery);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        toolbar.setTitle("Gallery");
        toolbar.setTitleTextColor(ContextCompat.getColor(Gallery.this, R.color.white));
        images = new ArrayList<>();
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onBackPressed();
            }
        });
        final GridView gridview = (GridView) findViewById(R.id.gridview);
        final ProgressDialog progressDialog = new ProgressDialog(Gallery.this);
        progressDialog.setMessage("Loading data...");
        progressDialog.show();
        ConnectivityManager manager = (ConnectivityManager) getApplicationContext().getSystemService(CONNECTIVITY_SERVICE);
        NetworkInfo info = manager.getActiveNetworkInfo();
        final boolean isconnected = info != null && info.isConnectedOrConnecting();
        Firebase.setAndroidContext(Gallery.this);
        if (Firebase.getDefaultConfig().isPersistenceEnabled() == false)   //check if persistence is enabled or disbled
            Firebase.getDefaultConfig().setPersistenceEnabled(true);
        String URL = "someurl";
        Firebase firebase = new Firebase(URL);
        final ImageAdapter adapter = new ImageAdapter(Gallery.this, images);
        final Firebase imagefolder = firebase.child("imagesfolder");
        imagefolder.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                    images.add(snapshot.getValue(String.class));
                    adapter.notifyDataSetChanged();
                }
            }
            @Override
            public void onCancelled(FirebaseError firebaseError) {
            }
        });

}}

这是来自Android设备监视器的崩溃报告

java.lang.runtimeException:出了点问题,请向 support@firebase.com at android.app.activitythread.performlaunchactivity(activityThread.java:2195) at android.app.activitythread.handlelaunchactivity(activityThread.java:2245) at android.app.activitythread.access $ 800(activityThread.java:135) 在Android.app.Apt.activityThread $ H.Handlemessage(activityThread.java:1196) at android.os.handler.dispatchmessage(Handler.java:102) at android.os.looper.loop(looper.java:136) at android.app.activitythread.main(activityThread.java:5017) 在java.lang.reflect.method.invokenative(method.java) 在java.lang.reflect.method.invoke(method.java:515) 在com.android.internal.os.os.zygoteinit $ methodandargscaller.run(zygoteinit.java:779) 在com.android.internal.os.os.zygoteinit.main(zygoteinit.java:595) 在dalvik.system.nativestart.main(nativestart.java)

通过使用databaseerference类而不是使用firebase

来解决错误
private DatabaseReference mDatabase;
    FirebaseDatabase database = FirebaseDatabase.getInstance();
    mDatabase=database.getReference().child("imagesfolder");
    final ImageAdapter adapter = new ImageAdapter(Gallery.this, images);
     mDatabase.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                    images.add(snapshot.getValue(String.class));
                    adapter.notifyDataSetChanged();
                }
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });

相关内容