如果您想了解java.lang.IllegalStateException:FirebaseApp被删除的相关知识,那么本文是一篇不可错过的文章,我们将对javasoft删除了进行全面详尽的解释,并且
如果您想了解java.lang.IllegalStateException: FirebaseApp 被删除的相关知识,那么本文是一篇不可错过的文章,我们将对javasoft删除了进行全面详尽的解释,并且为您提供关于### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String ### Cause: java.lang.IllegalArgumentException: ...、'com.company.MotherBoard' 中的错误 'MotherBoard(java.lang.String, java.lang.String, float, java.lang.String)' 不能应用于 '()'、Android Studio,java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Long、Android:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“ java.lang.String java.lang.Object.toString()”的有价值的信息。
本文目录一览:- java.lang.IllegalStateException: FirebaseApp 被删除(javasoft删除了)
- ### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String ### Cause: java.lang.IllegalArgumentException: ...
- 'com.company.MotherBoard' 中的错误 'MotherBoard(java.lang.String, java.lang.String, float, java.lang.String)' 不能应用于 '()'
- Android Studio,java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Long
- Android:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“ java.lang.String java.lang.Object.toString()”
java.lang.IllegalStateException: FirebaseApp 被删除(javasoft删除了)
如何解决java.lang.IllegalStateException: FirebaseApp 被删除
最后,我正在努力解决来自 firebase 的 Android 崩溃问题。 我们使用的是统一最新版本:
- Firebase 应用 (v7.1.0)
- Firebase 身份验证 (v7.1.0)
- Firebase Crashlytics (v7.1.0)
- Firebase 远程配置 (v7.1.0)
- Google Analytics for Firebase (v7.1.0)。
我们用选项初始化它:
Application = firebaSEOptions != null ? FirebaseApp.Create(firebaSEOptions) : FirebaseApp.DefaultInstance;
通常游戏运行正常,firebase 实现看起来不错,事件被捕获等。不幸的是,我们有很多使用 stacktrace 的崩溃:
有人遇到过同样的问题吗?如何解决?我们无法重现该问题,我们甚至根本不知道它是如何发生的,因为堆栈跟踪清晰地从 Google 团队代码中运行。
我认为这是一项检查应用程序是否未从手机中删除的工作。
Fatal Exception: java.lang.IllegalStateException: FirebaseApp was deleted
at com.google.android.gms.common.internal.Preconditions.checkState(com.google.android.gms:play-services-basement@@17.6.0:2)
at com.google.firebase.FirebaseApp.checkNotDeleted(FirebaseApp.java:439)
at com.google.firebase.FirebaseApp.getApplicationContext(FirebaseApp.java:126)
at com.google.firebase.installations.FirebaseInstallations.insertOrUpdatePrefs(FirebaseInstallations.java:444)
at com.google.firebase.installations.FirebaseInstallations.doNetworkCallIfNecessary(FirebaseInstallations.java:401)
at com.google.firebase.installations.FirebaseInstallations.lambda$doRegistrationorRefresh$2(FirebaseInstallations.java:377)
at com.google.firebase.installations.FirebaseInstallations$$Lambda$4.run(:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)```
解决方法
我已经设法解决了一个问题。
首先是覆盖firebase应用的DefaultInstance的问题。 你可以在这里找到更多: Firebase issue
这是您如何解决它,链接是由 firebase 支持提供给我的。 目前我们正在阻止应用的自动初始化,并在运行时创建一个新的 Firebase 应用,这是我们在启动器中做的第一件事。
https://firebase.googleblog.com/2017/03/take-control-of-your-firebase-init-on.html
您还可以在此处了解有关 Firebase 初始化过程的更多信息: https://firebase.googleblog.com/2016/12/how-does-firebase-initialize-on-android.html
### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String ### Cause: java.lang.IllegalArgumentException: ...
### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String
### Cause: java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String] with root cause
java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String
at org.apache.ibatis.ognl.OgnlOps.compareWithConversion(OgnlOps.java:92)
at org.apache.ibatis.ognl.OgnlOps.isEqual(OgnlOps.java:142)
at org.apache.ibatis.ognl.OgnlOps.equal(OgnlOps.java:794)
at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:53)
at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
at org.apache.ibatis.ognl.ASTAnd.getValueBody(ASTAnd.java:61)
at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:494)
......
在MVC开发中习惯使用原有的类作为传参方式:
javaBean:
该javaBean上建立扩展类:
数据库中,blog表和blogType表存在外键关系,所以在blog类的实现上,要建立一个blogType的类做属性。
在该查询中,显示的异常信息可知,invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String,不能比较(blogType和String)
sql语句的拼接中,判断该类是否为空就行了,我就照着前面的一路CV,从而忽略了这个错误(根本是没注意到这样的问题)。
所以这里要注意啊:代码套路深,CV需谨慎啊。CV自己的代码都能坑死自己啊。
日常报错ing,吸取更多的教训,写出更优雅的代码,同时希望能帮助到同是坎坷路上的码友们。
'com.company.MotherBoard' 中的错误 'MotherBoard(java.lang.String, java.lang.String, float, java.lang.String)' 不能应用于 '()'
如何解决''com.company.MotherBoard'' 中的错误 ''MotherBoard(java.lang.String, java.lang.String, float, java.lang.String)'' 不能应用于 ''()''
我一直试图在另一个类中实例化一个类的对象,但它给了我标题中描述的错误。
例如,代码如下所示:
package com.company;
public class Desktop {
private String coolerType;
public motherboard mb = new motherboard();
public GraphicsCard gpu = new GraphicsCard();
public String getCoolerType() {
return coolerType;
}
public void setCoolerType(String coolerType) {
if(!this.coolerType.isEmpty()) {
this.coolerType = coolerType;
}
}
public Desktop(String coolerType) {
this.coolerType = coolerType;
}
}
“motherboard”和“GraphicsCard”是项目中的类,我想在“Desktop”类中实例化它们。
任何帮助将不胜感激:)
Android Studio,java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Long
如何解决Android Studio,java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Long
我不断收到此错误消息
java.lang.classCastException: java.lang.String 不能转换为 java.lang.Long
我正在尝试使用共享首选项在活动之间传递一个长值,这是我的第一个活动的代码
SharedPreferences sp = getApplicationContext().getSharedPreferences("userdata",Context.MODE_PRIVATE);
Calendar cal = Calendar.getInstance();
SharedPreferences.Editor editor = sp.edit();
editor.putLong("time"+i,cal.getTimeInMillis());
editor.commit();
这是我的第二个活动的代码。
ArrayList<Long> time = new ArrayList<Long>();
sp = getSharedPreferences("userdata",Context.MODE_PRIVATE);
time.add(sp.getLong("time"+i,0)); // here is where the error occurs
“time”末尾的 +i 的原因是这些 put 和 receive 消息在 for 循环中运行,因为有多个 long 正在传递并且顺序很重要。请告诉我是否还有其他方法可以执行此操作或如何解决此异常。
谢谢
Android:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“ java.lang.String java.lang.Object.toString()”
面对我正在使用的练习应用程序的问题。我面临与toString方法有关的NullPointerException问题。作为android应用程序开发的新手,即使经过研究,我也不确定确切的原因。因此,我要求一个更熟悉堆栈跟踪的人来帮助我。
注意:当我单击列表视图条目以访问日记条目的编辑页面时,将发生错误。但是,它似乎根本没有进入编辑页面。
在下面,您将找到我的活动代码及其堆栈跟踪。
活动代码:
import android.app.AlertDialog;import android.content.DialogInterface;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.content.Intent;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.EditText;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import java.util.ArrayList;public class ViewDiaryEntries extends AppCompatActivity {// Database HelperMyDBHandler db;// ListviewListView data_list;// Test varpublic final static String KEY_EXTRA_DATA_ID = "KEY_EXTRA_DATA_ID";@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_view_diary_entries); db = new MyDBHandler(this); // Displays the database items. displayItems();}// To display items in the listview.public void displayItems(){ // To display items in a listview. ArrayList db_data_list = db.getDiaryDBDataList(); ArrayAdapter listAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, db_data_list); // Set the adapter for the listview data_list = (ListView) findViewById(R.id.dataListView); data_list.setAdapter(listAdapter); /* Experiment -------------------------------------------------------------*/ data_list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // Selected item store String selectedEntry = ((TextView) view).getText().toString(); // Test for regular expression String[] listViewItemSplit = selectedEntry.split(" - "); String listViewItempt1 = listViewItemSplit[0]; // For date and time //String listViewItempt2 = listViewItemSplit[1]; // For save file name //Toast.makeText(ViewDiaryEntries.this, listViewItempt1, Toast.LENGTH_LONG).show(); if(listViewItempt1.equals("")){ Toast.makeText(ViewDiaryEntries.this, "Error. Unable to detect entry ID.", Toast.LENGTH_LONG).show(); } else{ // Pass on the data: Intent editEntry = new Intent(ViewDiaryEntries.this, editdiaryentry.class); editEntry.putExtra(KEY_EXTRA_DATA_ID, listViewItempt1); startActivity(editEntry); } } });}// For the go back button.public void viewdiarytoinitialdiary_backbutt(View v){ // Create and start new intent going back ot main page. Intent main_page = new Intent(ViewDiaryEntries.this, User_Main_Menu_Options.class); main_page.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(main_page);}// For the about button.public void viewdiarypage_directionabout_butt(View v){ // Create an alert dialog final AlertDialog.Builder about_page_dialog = new AlertDialog.Builder(ViewDiaryEntries.this); about_page_dialog.setTitle("About This Page:"); // Inputs values for the dialog message. final String dialog_message = "This page will show you any saved diary entries you''ve.\n\n To edit an entry, do the following: \n\n- Take note of the Entry ID# (first value on entry display) \n- Type it in the number box at the bottom. \n- Press Edit Record icon next to number box, and wait for it to load."; about_page_dialog.setMessage(dialog_message); about_page_dialog.setPositiveButton("Got it!", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // Closes the dialog. dialog.cancel(); } }); // Shows the dialog. about_page_dialog.show();}// Main menu button.public void viewDiaryEntriesMainMenushortcut_butt(View v){ // Creates main menu alert dialog. AlertDialog.Builder mainMenu_Dialog = new AlertDialog.Builder(this); mainMenu_Dialog.setIcon(R.drawable.main_menu_symbol); mainMenu_Dialog.setTitle("Main Menu"); // Creates array adapter with items to fill the menu with. final ArrayAdapter<String> menuItemsAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1); menuItemsAdapter.add("Home Screen"); menuItemsAdapter.add("Diary"); menuItemsAdapter.add("Tests"); menuItemsAdapter.add("Activity"); menuItemsAdapter.add("Media"); menuItemsAdapter.add("Thought of the Day"); menuItemsAdapter.add("Inspirational Quotes"); menuItemsAdapter.add("Resources"); menuItemsAdapter.add("Settings"); // To close menu. mainMenu_Dialog.setPositiveButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); // To go to appropriate page upon selection. mainMenu_Dialog.setAdapter(menuItemsAdapter, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String selectedItem = menuItemsAdapter.getItem(which); if(selectedItem.equals("Home Screen")){ // Goes to main menu. Intent mainMenu = new Intent(ViewDiaryEntries.this, User_Main_Menu_Options.class); mainMenu.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(mainMenu); } else if(selectedItem.equals("Diary")){ // Goes to diary page. Intent diaryPage = new Intent(ViewDiaryEntries.this, ViewDiaryEntries.class); diaryPage.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(diaryPage); } else if(selectedItem.equals("Tests")){ // Goes to tests page. Intent testsPage = new Intent(ViewDiaryEntries.this, TestChoices.class); testsPage.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(testsPage); } else if(selectedItem.equals("Media")){ // Goes to media page. Intent mediaPage = new Intent(ViewDiaryEntries.this, initialMediaPage.class); mediaPage.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(mediaPage); } else if(selectedItem.equals("Thought of the Day")){ // Goes to thought of the day page. Intent thoughtofthedayPage = new Intent(ViewDiaryEntries.this, thoughtQuotes.class); thoughtofthedayPage.putExtra("quote_or_thought", 2); thoughtofthedayPage.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(thoughtofthedayPage); } else if(selectedItem.equals("Inspirational Quotes")){ // Goes to inspirational quotes page. Intent inspirationalquotesPage = new Intent(ViewDiaryEntries.this, thoughtQuotes.class); inspirationalquotesPage.putExtra("quote_or_thought", 1); inspirationalquotesPage.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(inspirationalquotesPage); } else if(selectedItem.equals("Settings")){ // Goes to settings page. Intent settingsPage = new Intent(ViewDiaryEntries.this, settings.class); settingsPage.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(settingsPage); } } }); mainMenu_Dialog.show();}// For the settings button.public void viewdiarypagelisttoSettings_butt(View v){ // Goes to settings page. Intent settingsPage = new Intent(ViewDiaryEntries.this, settings.class); settingsPage.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(settingsPage);}// For new entry.public void viewdiarypageaddEntry_butt(View v){ // Opening up the diary add intent. Intent newdiaryEntry = new Intent(ViewDiaryEntries.this, newdiaryentry.class); startActivity(newdiaryEntry);}}
这是我看到的堆栈跟踪:
java.lang.NullPointerException: Attempt to invoke virtual method ''java.lang.String java.lang.Object.toString()'' on a null object reference at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:401) at android.widget.ArrayAdapter.getView(ArrayAdapter.java:369) at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:194) at android.widget.Spinner.onMeasure(Spinner.java:580) at android.support.v7.widget.AppCompatSpinner.onMeasure(AppCompatSpinner.java:407) at android.view.View.measure(View.java:18794) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715) at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461) at android.view.View.measure(View.java:18794) at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1283) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.widget.ScrollView.onMeasure(ScrollView.java:340) at android.view.View.measure(View.java:18794) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135) at android.view.View.measure(View.java:18794) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465) at android.widget.LinearLayout.measureVertical(LinearLayout.java:748) at android.widget.LinearLayout.onMeasure(LinearLayout.java:630) at android.view.View.measure(View.java:18794) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:18794) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465) at android.widget.LinearLayout.measureVertical(LinearLayout.java:748) at android.widget.LinearLayout.onMeasure(LinearLayout.java:630) at android.view.View.measure(View.java:18794) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2643) at android.view.View.measure(View.java:18794) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2100) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1216) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1452) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) at android.view.Choreographer.doCallbacks(Choreographer.java:670) at android.view.Choreographer.doFrame(Choreographer.java:606) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
任何对解决方案的帮助将不胜感激。
编辑:
因此,在从数据库和与之交互的活动之间的代码来回浏览之后,我设法使其重新工作。以下是我按确切顺序执行的操作:
- 我意识到我有一个日期字段没有接收任何数据,对此进行了纠正。
- 清理了项目。
- 重新启动Android Studio(基本上停止开发环境的所有操作)。
- 从我的开发手机上卸载了该应用。
- 重新启动android studio并重新安装该应用程序。
- 我以某种方式工作= _ =,是的,这很神奇。
老实说,我不知道哪一步真正解决了它。我猜这是数据库中的日期字段在我没有收到任何数据的同时给我带来了麻烦。
答案1
小编典典您的阵列中ArrayAdapter
至少包含一个条目null
。那里不能有空值。
数组被填充,getDiaryDBDataList()
所以问题也在那里。
关于java.lang.IllegalStateException: FirebaseApp 被删除和javasoft删除了的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String ### Cause: java.lang.IllegalArgumentException: ...、'com.company.MotherBoard' 中的错误 'MotherBoard(java.lang.String, java.lang.String, float, java.lang.String)' 不能应用于 '()'、Android Studio,java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Long、Android:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“ java.lang.String java.lang.Object.toString()”等相关内容,可以在本站寻找。
本文标签: