Ошибка Firebase com.firebase.client.core.Context.a на подписанный APK - PullRequest
0 голосов
/ 22 января 2020

Я создаю форму заявки на Android приложении, использующем базу данных Firebase Realtime. Отладочная версия apk работает нормально, но cra sh на подписанном apk. Я проверил Google json, что я использую правильный. Вот журнал, который я получил от crashlytics.

Caused by java.lang.NoSuchMethodException: <init> [class android.content.Context]
       at java.lang.Class.getConstructor0(Class.java:2320)
       at java.lang.Class.getConstructor(Class.java:1725)
       at com.firebase.client.core.Context.a(Context.java:27)
       at com.firebase.client.Firebase.setAndroidContext(Firebase.java:2)
       at com.mikrosium.wallpaper.ChatActivity.onCreate(ChatActivity.java:54)
       at android.app.Activity.performCreate(Activity.java:6975)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2836)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2958)
       at android.app.ActivityThread.-wrap11(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1654)
       at android.os.Handler.dispatchMessage(Handler.java:105)
       at android.os.Looper.loop(Looper.java:164)
       at android.app.ActivityThread.main(ActivityThread.java:6653)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770)

Вот ChatActivity. MainActivity работает нормально, cra sh происходит только на этой активности.

package com.mikrosium.wallpaper;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.firebase.client.Firebase;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class ChatActivity extends AppCompatActivity {
    Button SubmitButton ;
    private Toolbar toolbar;
    LinearLayout ll_adView;
    EditText NameEditText;

    public static final String Firebase_Server_URL = "myfirebaseurl";

    String ContentHolder;

    Firebase firebase;

    DatabaseReference databaseReference;

    public static final String Database_Path = "myfirebasedatabasename";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_chat);
        ll_adView = findViewById(R.id.ll_adView);
        toolbar = this.findViewById(R.id.toolbar_setting);
        toolbar.setTitle(getString(R.string.nav_request));
        this.setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        Firebase.setAndroidContext(ChatActivity.this);

        firebase = new Firebase(Firebase_Server_URL);

        databaseReference = FirebaseDatabase.getInstance().getReference(Database_Path);

        SubmitButton = (Button)findViewById(R.id.submit);

        NameEditText = (EditText)findViewById(R.id.name);

        SubmitButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                RequestDetails requestDetails = new RequestDetails();

                GetDataFromEditText();

                requestDetails.setRequest_Wallpaper(ContentHolder);


                String WallpaperRequestIDFromServer = databaseReference.push().getKey();

                databaseReference.child(WallpaperRequestIDFromServer).setValue(requestDetails);

                Context c = ChatActivity.this;
                Toast toast = Toast.makeText(c,
                        c.getResources().getString(R.string.success_request),
                        Toast.LENGTH_SHORT);
                toast.show();
                Intent myIntent = new Intent(getBaseContext(),MainActivity.class);
                startActivity(myIntent);
            }
        });

    }
    public boolean onOptionsItemSelected(MenuItem menuItem) {
        switch (menuItem.getItemId()) {
            case android.R.id.home:
                onBackPressed();
                break;

            default:
                return super.onOptionsItemSelected(menuItem);
        }
        return true;
    }
    public void GetDataFromEditText(){

        ContentHolder = NameEditText.getText().toString().trim();

    }
}

1 Ответ

0 голосов
/ 22 января 2020

Используете ли вы ProGuard при создании релизной сборки? Если это так, вам может потребоваться сделать следующее: Настроить ProGuard

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...