Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Logcat错误:应用程序崩溃且无法运行。根据Logcat在setContentView处出错_Java_Android_Xml_Android Studio_Android Debug - Fatal编程技术网

Java Logcat错误:应用程序崩溃且无法运行。根据Logcat在setContentView处出错

Java Logcat错误:应用程序崩溃且无法运行。根据Logcat在setContentView处出错,java,android,xml,android-studio,android-debug,Java,Android,Xml,Android Studio,Android Debug,我正在开发一个基本的等式平衡应用程序,我是android开发者的新手。这个应用程序根本不在手机上运行。我以前有一个启动屏幕,用来弹出,然后应用程序就会关闭。我删除了启动屏幕,现在应用程序无法打开。我猜MainActivity中有一个错误(启动屏幕过去用来显示它,现在是launcher活动)。但是在ADB仿真的同时运行logcat时,它显示了MainActivity的onCreate方法中的错误。logcat中还有一些错误,但我不知道它们是什么意思(我想唯一重要的错误是带有蓝色下划线的onCrea

我正在开发一个基本的等式平衡应用程序,我是android开发者的新手。这个应用程序根本不在手机上运行。我以前有一个启动屏幕,用来弹出,然后应用程序就会关闭。我删除了启动屏幕,现在应用程序无法打开。我猜MainActivity中有一个错误(启动屏幕过去用来显示它,现在是launcher活动)。但是在ADB仿真的同时运行logcat时,它显示了MainActivity的onCreate方法中的错误。logcat中还有一些错误,但我不知道它们是什么意思(我想唯一重要的错误是带有蓝色下划线的onCreate错误)。请帮忙

MainActivity.java

public class MainActivity extends AppCompatActivity implements DialogCloseListener {

    private RecyclerView taskRecyclerView;
    private EqBalAdapter tasksAdapter;
    private List<EqBalModel> taskList;
    private DatabaseHandler db;
    private FloatingActionButton fab;
    private FloatingActionButton fab2;


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

        bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#00d024")));

        BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.nav_bottom);
        navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.nav_home:
                        break;
                    case R.id.nav_aboutus:
                        Intent a = new Intent(MainActivity.this, AboutUs.class);
                        startActivity(a);
                        break;
                    case R.id.nav_help:
                        Intent b = new Intent(MainActivity.this,HelpGuide.class);
                        startActivity(b);
                        break;

                }
                return false;
            }
        });


        db = new DatabaseHandler(this);
        db.openDatabase();

        taskList = new ArrayList<>();

        taskRecyclerView = findViewById(R.id.reacRecyclerView);
        taskRecyclerView.setLayoutManager(new LinearLayoutManager(this));
        tasksAdapter = new EqBalAdapter(db, this);
        taskRecyclerView.setAdapter(tasksAdapter);

        fab = findViewById(R.id.fab);

        ItemTouchHelper itemTouchHelper = new
                ItemTouchHelper(new RecyclerItemTouchHelper(tasksAdapter));
        itemTouchHelper.attachToRecyclerView(taskRecyclerView);

        taskList = db.getAllTasks();
        Collections.reverse(taskList);
        tasksAdapter.setTasks(taskList);

        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AddNewTask.newInstance().show(getSupportFragmentManager(), AddNewTask.TAG);
            }
        });
        fab2=findViewById(R.id.newactivity);

        ItemTouchHelper itemTouchHelper2 = new
                ItemTouchHelper(new RecyclerItemTouchHelper(tasksAdapter));
        itemTouchHelper2.attachToRecyclerView(taskRecyclerView);


        fab2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent2 = new Intent(MainActivity.this, eleView.class);
                startActivity(intent2);
            }
        });
    }

    @Override
    public void handleDialogClose(DialogInterface dialog) {
        taskList = db.getAllTasks();
        Collections.reverse(taskList);
        tasksAdapter.setTasks(taskList);
        tasksAdapter.notifyDataSetChanged();
    }
}
如果需要任何其他文件,我随时准备提供。我只想知道发生了什么事并把它解决掉。谢谢

附言:

编辑: themes.xml

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Theme.ChemicalEquationBalancer" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/purple_500</item>
        <item name="colorPrimaryVariant">@android:color/transparent</item>
        <item name="colorOnPrimary">@color/white</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/teal_200</item>
        <item name="colorSecondaryVariant">@color/teal_700</item>
        <item name="colorOnSecondary">@color/black</item>
        <!-- Status bar color. -->
        <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
        <!-- Customize your theme here. -->
    </style>

    <style name="Theme.ChemicalEquationBalancer.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

    <style name="Theme.ChemicalEquationBalancer.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
    <style name="Theme.ChemicalEquationBalancer.ActionBar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
        <item name="windowActionBar">true</item>
        <item name="windowNoTitle">false</item>
    </style>

    <style name="Theme.ChemicalEquationBalancer.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
    <style name="DialogStyle" parent="Theme.Design.BottomSheetDialog">
        <item name="android:windowIsFloating">false</item>
        <item name="android:statusBarColor">@android:color/transparent</item>
        <item name="android:windowSoftInputMode">adjustResize</item>
    </style>

</resources>

@颜色/紫色500
@android:彩色/透明
@颜色/白色
@颜色/青色200
@颜色/青绿色700
@颜色/黑色
?attr/colorPrimaryVariant
假的
真的
真的
假的
假的
@android:彩色/透明
调整大小

您的MainActivity正在扩展AppCompatActivity,这意味着它将继承默认的操作栏

ThemeOverlay.AppCompat(用于 Theme.ChemicalEquationBalancer.ActionBar)用于覆盖(或 “覆盖”)特定视图的主题,尤其是工具栏

如果您想自定义此ActionBar(您可能正在这样做),可以在活动的清单中添加一个NoActionBar主题,然后为活动的布局提供工具栏

    <activity
        android:name="com.example.chemicalequationbalancer.MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.Light.NoActionBar" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>

在activity_main.xml中,可以添加任何需要的主题

<androidx.appcompat.widget.Toolbar
    ...
    android:background="?attr/colorPrimary"
    android:theme="@style/Theme.ChemicalEquationBalancer.ActionBar />

请向我们展示您名为theme.ChemicalEquationBalancer的主题。ActionBar@SarahKhan原来如此:
true-false
我用整个themes.xml编辑了原始帖子,以防万一。非常感谢!真的很感激!!这解决了该错误以及由于相同原因在其他文件中发生的相同错误。但是,底部导航的另一个活动中存在另一个错误。Logcat再次显示错误,但未找到“错误”。下面是一行:
BottomNavigationView导航=(BottomNavigationView)findViewById(R.id.nav_bottom);navigation.setOnNavigationItemSelectedListener(新的BottomNavigationView.OnNavigationItemSelectedListener()
非常感谢所有的帮助。你是我们需要的英雄。你能投票并将此标记为你的答案吗?请将另一期作为单独的问题发布,以便我们可以查看它吗?我已将此问题添加为新的帖子,并标记了你的答案。当我投票给你的答案时,上面显示的是不到一个月的帐户的投票记录了15个声誉,但不会改变公众的投票数:(对不起,好的,谢谢
2021-02-16 02:07:50.712 13502-13502/com.example.chemicalequationbalancer E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.chemicalequationbalancer, PID: 13502
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.chemicalequationbalancer/com.example.chemicalequationbalancer.MainActivity}: android.view.InflateException: Binary XML file line #31: Binary XML file line #31: Error inflating class com.android.internal.widget.ActionBarContainer
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3197)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3334)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:113)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:71)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2025)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:226)
        at android.app.ActivityThread.main(ActivityThread.java:7191)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:499)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:942)
     Caused by: android.view.InflateException: Binary XML file line #31: Binary XML file line #31: Error inflating class com.android.internal.widget.ActionBarContainer
     Caused by: android.view.InflateException: Binary XML file line #31: Error inflating class com.android.internal.widget.ActionBarContainer
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
        at android.view.LayoutInflater.createView(LayoutInflater.java:652)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:817)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:740)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:890)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:851)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
        at com.android.internal.policy.DecorView.onResourcesLoaded(DecorView.java:2239)
        at com.android.internal.policy.PhoneWindow.generateLayout(PhoneWindow.java:2761)
        at com.android.internal.policy.PhoneWindow.installDecor(PhoneWindow.java:2868)
        at com.android.internal.policy.PhoneWindow.getDecorView(PhoneWindow.java:2133)
        at androidx.appcompat.app.AppCompatActivity.initViewTreeOwners(AppCompatActivity.java:198)
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:173)
        at **com.example.chemicalequationbalancer.MainActivity.onCreate(MainActivity.java:51)**
        at android.app.Activity.performCreate(Activity.java:7376)
        at android.app.Activity.performCreate(Activity.java:7367)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3177)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3334)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:113)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:71)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2025)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:226)
        at android.app.ActivityThread.main(ActivityThread.java:7191)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:499)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:942)
2021-02-16 02:07:50.714 13502-13502/com.example.chemicalequationbalancer E/AndroidRuntime: Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 13: TypedValue{t=0x2/d=0x1010433 a=1}
        at android.content.res.TypedArray.getDrawableForDensity(TypedArray.java:946)
        at android.content.res.TypedArray.getDrawable(TypedArray.java:930)
        at android.view.View.<init>(View.java:5108)
        at android.view.ViewGroup.<init>(ViewGroup.java:665)
        at android.widget.FrameLayout.<init>(FrameLayout.java:92)
        at android.widget.FrameLayout.<init>(FrameLayout.java:87)
        at android.widget.FrameLayout.<init>(FrameLayout.java:82)
        at com.android.internal.widget.ActionBarContainer.<init>(ActionBarContainer.java:61)
            ... 32 more
<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Theme.ChemicalEquationBalancer" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/purple_500</item>
        <item name="colorPrimaryVariant">@android:color/transparent</item>
        <item name="colorOnPrimary">@color/white</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/teal_200</item>
        <item name="colorSecondaryVariant">@color/teal_700</item>
        <item name="colorOnSecondary">@color/black</item>
        <!-- Status bar color. -->
        <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
        <!-- Customize your theme here. -->
    </style>

    <style name="Theme.ChemicalEquationBalancer.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

    <style name="Theme.ChemicalEquationBalancer.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
    <style name="Theme.ChemicalEquationBalancer.ActionBar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
        <item name="windowActionBar">true</item>
        <item name="windowNoTitle">false</item>
    </style>

    <style name="Theme.ChemicalEquationBalancer.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
    <style name="DialogStyle" parent="Theme.Design.BottomSheetDialog">
        <item name="android:windowIsFloating">false</item>
        <item name="android:statusBarColor">@android:color/transparent</item>
        <item name="android:windowSoftInputMode">adjustResize</item>
    </style>

</resources>
    <activity
        android:name="com.example.chemicalequationbalancer.MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.Light.NoActionBar" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
<androidx.appcompat.widget.Toolbar
    ...
    android:background="?attr/colorPrimary"
    android:theme="@style/Theme.ChemicalEquationBalancer.ActionBar />