I made NavigationDrawer using Mike Penz's MaterialDrawer. It works fine, but when I try to replace the "FontAwesome" icons with "GoogleMaterial" or others I get an error message
"Unfortunately, the App has stopped."
Everything works only with the icons "FontAwesome"
How can this problem be solved?
Thank you in advance!
MainActivity.java:
import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.support.v7.widget.Toolbar; import com.mikepenz.google_material_typeface_library.GoogleMaterial; import com.mikepenz.iconics.typeface.FontAwesome; import com.mikepenz.materialdrawer.Drawer; import com.mikepenz.materialdrawer.model.DividerDrawerItem; import com.mikepenz.materialdrawer.model.PrimaryDrawerItem; public class MainActivity extends ActionBarActivity { private Drawer.Result drawerResult = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Handle Toolbar Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); toolbar.getBackground().setAlpha(100); getSupportActionBar().setDisplayHomeAsUpEnabled(true); drawerResult = new Drawer() .withActivity(this) .withToolbar(toolbar) .withActionBarDrawerToggle(true) .withHeader(R.layout.drawer_header) .addDrawerItems( new PrimaryDrawerItem().withName(R.string.drawer_item_home).withIcon(FontAwesome.Icon.faw_home), new PrimaryDrawerItem().withName(R.string.drawer_item_database).withIcon(FontAwesome.Icon.faw_database), new PrimaryDrawerItem().withName(R.string.drawer_item_map).withIcon(FontAwesome.Icon.faw_map_marker), new PrimaryDrawerItem().withName(R.string.drawer_item_guides).withIcon(FontAwesome.Icon.faw_book), new PrimaryDrawerItem().withName(R.string.drawer_item_crafting).withIcon(GoogleMaterial.Icon.gmd_build), //new PrimaryDrawerItem().withName(R.string.drawer_item_tools).withIcon(GoogleMaterial.Icon.gmd_build), new PrimaryDrawerItem().withName(R.string.drawer_item_links).withIcon(FontAwesome.Icon.faw_link), new DividerDrawerItem(), //new PrimaryDrawerItem().withName(R.string.drawer_item_settings).withIcon(GoogleMaterial.Icon.gmd_settings), new PrimaryDrawerItem().withName(R.string.drawer_item_feedback).withIcon(FontAwesome.Icon.faw_envelope) //new PrimaryDrawerItem().withName(R.string.drawer_item_changes).withIcon(Typeicons.Icon.typ_clipboard) ) .build(); } @Override public void onBackPressed() { if (drawerResult.isDrawerOpen()) { drawerResult.closeDrawer(); } else { super.onBackPressed(); } } } activity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/blackToolbar" android:elevation="4dp" android:minHeight="?attr/actionBarSize" android:paddingTop="@dimen/tool_bar_top_padding" android:transitionName="actionBar" /> </RelativeLayout> build.gradle:
apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "org.enotboris.app" minSdkVersion 15 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.1.0' compile('com.mikepenz.materialdrawer:library:0.9.5@aar') { transitive = true } compile 'com.mikepenz:google-material-typeface:2.2.0.3.original@aar' compile 'com.mikepenz:devicon-typeface:2.0.0.2@aar' compile 'com.mikepenz:material-design-iconic-typeface:2.2.0.2@aar' compile 'com.mikepenz:fontawesome-typeface:4.7.0.0@aar' compile 'com.mikepenz:octicons-typeface:3.2.0.2@aar' compile 'com.mikepenz:meteocons-typeface:1.1.0.2@aar' compile 'com.mikepenz:community-material-typeface:1.7.22.1@aar' compile 'com.mikepenz:weather-icons-typeface:2.0.10.2@aar' compile 'com.mikepenz:typeicons-typeface:2.0.7.2@aar' compile 'com.mikepenz:entypo-typeface:1.0.0.2@aar' compile 'com.mikepenz:devicon-typeface:2.0.0.2@aar' compile 'com.mikepenz:foundation-icons-typeface:3.0.0.2@aar' compile 'com.mikepenz:ionicons-typeface:2.0.1.2@aar' testCompile 'junit:junit:4.12' } AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.enotboris.dayz"> <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"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> LogCat:
01-25 15:29:09.899 2594-2594/? E/AndroidRuntime: FATAL EXCEPTION: main java.lang.RuntimeException: The font for the given icon isn't registered! at com.mikepenz.iconics.IconicsDrawable.icon(IconicsDrawable.java:121) at com.mikepenz.iconics.IconicsDrawable.<init>(IconicsDrawable.java:89) at com.mikepenz.materialdrawer.model.PrimaryDrawerItem.convertView(PrimaryDrawerItem.java:190) at com.mikepenz.materialdrawer.adapter.DrawerAdapter.getView(DrawerAdapter.java:125) at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220) at android.widget.AbsListView.obtainView(AbsListView.java:2271) at android.widget.ListView.makeAndAddView(ListView.java:1769) at android.widget.ListView.fillDown(ListView.java:672) at android.widget.ListView.fillSpecific(ListView.java:1330) at android.widget.ListView.layoutChildren(ListView.java:1612) at android.widget.AbsListView.onLayout(AbsListView.java:2106) at android.view.View.layout(View.java:13754) at android.view.ViewGroup.layout(ViewGroup.java:4364) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507) at android.widget.LinearLayout.onLayout(LinearLayout.java:1420) at android.view.View.layout(View.java:13754) at android.view.ViewGroup.layout(ViewGroup.java:4364) at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1217) at android.view.View.layout(View.java:13754) at android.view.ViewGroup.layout(ViewGroup.java:4364) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:13754) at android.view.ViewGroup.layout(ViewGroup.java:4364) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507) at android.widget.LinearLayout.onLayout(LinearLayout.java:1420) at android.view.View.layout(View.java:13754) at android.view.ViewGroup.layout(ViewGroup.java:4364) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:13754) at android.view.ViewGroup.layout(ViewGroup.java:4364) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507) at android.widget.LinearLayout.onLayout(LinearLayout.java:1420) at android.view.View.layout(View.java:13754) at android.view.ViewGroup.layout(ViewGroup.java:4364) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:13754) at android.view.ViewGroup.layout(ViewGroup.java:4364) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1868) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1689) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4214) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) at android.view.Choreographer.doCallbacks(Choreographer.java:555) at android.view.Choreographer.doFrame(Choreographer.java:525) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) Example: