TL;博士
这些确切的文件在一个工作站上工作,而不是另一个工作站。
我得到了什么(错误)
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.example.erik.recipefriend2/com.example.erik.recipefriend2.MainActivity}:
java.lang.IllegalStateException: You need to use a
Theme.AppCompat theme (or descendant) with this activity.
错误在第26行,在我的情况下是这样的:
setSupportActionBar(toolbar);
我做了什么正如主题所说,我一直在将我的Android Studio项目从我的固定电脑移到笔记本电脑上。我一直在使用Git和Bitbucket能够在两台计算机上工作。当我拉动项目并尝试运行它时,我收到上面显示的错误消息。当我从我的固定计算机上压缩项目并将其解压缩并在我的笔记本电脑上启动时,我得到了同样的错误。最后,我将不相关的文件(类文件,drawables和xml文件)粘贴到新创建的项目中,但我仍然得到错误。
我的想法已经不多了。我还有线路检查我的固定电脑上的课程,并将它们与笔记本电脑上的线路进行比较,但无济于事。
我将包括我认为参与此事的类和xmls。
styles.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="android:actionOverflowButtonStyle">@style/OverFlow</item>
</style>
<style name="ThemeOverlay.RecipesApp" parent="Theme.AppCompat.NoActionBar">
<item name="android:colorBackground">@color/colorGreen</item>
<item name="android:textColor">#FFFFFF</item>
</style>
<style name="OverFlow" parent="Widget.AppCompat.ActionButton.Overflow">
<item name="android:src">@drawable/ic_menu_white_24dp</item>
</style>
</resources>
的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.erik.recipefriend2">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
activity_main.xml中
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.example.erik.recipefriend2.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/ThemeOverlay.RecipesApp" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_main" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/addIngredient"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_margin="16dp"
app:backgroundTint="#91FF93"
android:tint="#FFFFFF"
android:onClick="goToAdd"
android:scaleType="fitCenter"
android:src="@android:drawable/ic_input_add" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/searchRecipe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:backgroundTint="#91FF93"
android:src="@android:drawable/ic_search_category_default"
android:layout_margin="16dp"
android:tint="#FFFFFF"
android:scaleType="fitCenter"
android:onClick="goToSearch"
android:layout_gravity="bottom|left"
/>
</android.support.design.widget.CoordinatorLayout>
MainActivity.java
package com.example.erik.recipefriend2;
import android.graphics.Color;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.MenuInflater;
import android.view.View;
import android.view.Menu;
import java.lang.reflect.Method;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitleTextColor(Color.WHITE);
setSupportActionBar(toolbar);
android.support.v7.app.ActionBar actionBar = getSupportActionBar();
actionBar.setLogo(R.mipmap.ic_launcher);
actionBar.setDisplayUseLogoEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.addIngredient);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.activity_main_actions, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
protected boolean onPrepareOptionsPanel(View view, Menu menu) {
if (menu != null) {
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
try {
Method m = menu.getClass().getDeclaredMethod(
"setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (Exception e) {
Log.e(getClass().getSimpleName(), "onMenuOpened...unable to set icons for overflow menu", e);
}
}
}
return super.onPrepareOptionsPanel(view, menu);
}
public void goToAdd(View view){
}
public void goToSearch(){
}
}
问题是什么?此外,如果需要更多文件,我也很乐意展示它们。
答案 0 :(得分:1)
在您的活动中,您定义android:theme="@style/AppTheme.NoActionBar"
,而不在样式中的任何位置定义AppTheme.NoActionBar
。令人困惑的是,这会编译,但会解释为什么会出现错误。