Я создаю форму заявки на 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();
}
}