ActivityNotFoundException в библиотечном проекте, пока активность существует и объявлена ​​​​в манифесте

Я пытаюсь использовать эту библиотеку. Но проект библиотеки, как и демонстрационный проект на странице github, предназначен для Android Studio, но я почему-то использую Eclipse. Поэтому я добавил библиотеку и демонстрационный проект в Eclipse (о том, как я это сделал, см. ниже) и загрузил их сюда:

Итак, что я сделал, так это создал новый проект библиотеки в Eclipse и скопировал все файлы из проекта библиотеки github. На следующем снимке экрана показана структура моего проекта:

Я добавил этот проект библиотеки в свой демонстрационный проект точно так же, как мы добавляем проект app_compat v7.

введите здесь описание изображения

Затем я создал демонстрационный проект в Eclipse и скопировал все файлы и ресурсы из демонстрационного проекта в их репозиторий на github.

Но когда я запускаю его, он дает мне android.content.ActivityNotFoundException: Unable to find explicit activity class {br.com.edsilfer/br.com.customsearchable.SearchActivity}; have you declared this activity in your AndroidManifest.xml?

Ниже приведены Logcat демонстрационного проекта и манифест библиотечного проекта:

ИЗ LOGCAT ДЕМО-ПРОЕКТА:

08-22 02:53:26.110: E/AndroidRuntime(2405): FATAL EXCEPTION: main
08-22 02:53:26.110: E/AndroidRuntime(2405): Process: br.com.edsilfer, PID: 2405
08-22 02:53:26.110: E/AndroidRuntime(2405): android.content.ActivityNotFoundException: Unable to find explicit activity class {br.com.edsilfer/br.com.customsearchable.SearchActivity}; have you declared this activity in your AndroidManifest.xml?
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1777)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1501)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.app.Activity.startActivityForResult(Activity.java:3745)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.app.Activity.startActivityForResult(Activity.java:3706)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:820)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.app.Activity.startActivity(Activity.java:4016)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.app.Activity.startActivity(Activity.java:3984)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at br.com.edsilfer.Main.onOptionsItemSelected(Main.java:82)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.app.Activity.onMenuItemSelected(Activity.java:2885)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:353)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:144)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.support.v7.internal.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:99)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.support.v7.app.AppCompatDelegateImplV7.onMenuItemSelected(AppCompatDelegateImplV7.java:541)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.support.v7.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:811)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.support.v7.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:153)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:958)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:948)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.support.v7.widget.ActionMenuView.invokeItem(ActionMenuView.java:598)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.support.v7.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:139)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.view.View.performClick(View.java:4780)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.view.View$PerformClick.run(View.java:19866)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.os.Handler.handleCallback(Handler.java:739)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.os.Handler.dispatchMessage(Handler.java:95)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.os.Looper.loop(Looper.java:135)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at android.app.ActivityThread.main(ActivityThread.java:5254)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at java.lang.reflect.Method.invoke(Native Method)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at java.lang.reflect.Method.invoke(Method.java:372)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
08-22 02:53:26.110: E/AndroidRuntime(2405):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

МАНИФЕСТ ПРОЕКТА LIB:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="br.com.customsearchable">

    <uses-sdk
        android:minSdkVersion="22"
        android:targetSdkVersion="22" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name">
        <activity android:name="br.com.customsearchable.SearchActivity"
                  android:launchMode="singleTop"
                  android:windowSoftInputMode="adjustResize|stateVisible"
                  android:theme="@style/Theme.AppCompat.Translucent" >
        </activity>
    </application>
</manifest>

РЕДАКТИРОВАТЬ № 1

После того, как @MFaisalHyder указал на этот вопрос, я добавил следующий элемент в элемент <application> демонстрационного проекта:

<activity android:name="br.com.customsearchable.SearchActivity"
                  android:launchMode="singleTop"
                  android:windowSoftInputMode="adjustResize|stateVisible"
                  android:theme="@style/Theme.AppCompat.Translucent" >
        </activity>

Теперь, коснувшись действия Search на панели инструментов, я получаю:

08-22 04:44:31.332: E/AndroidRuntime(2104): FATAL EXCEPTION: main
08-22 04:44:31.332: E/AndroidRuntime(2104): Process: br.com.edsilfer, PID: 2104
08-22 04:44:31.332: E/AndroidRuntime(2104): java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.edsilfer/br.com.customsearchable.SearchActivity}: android.view.InflateException: Binary XML file line #32: Error inflating class android.support.design.widget.TextInputLayout
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.app.ActivityThread.access$800(ActivityThread.java:151)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.os.Handler.dispatchMessage(Handler.java:102)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.os.Looper.loop(Looper.java:135)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.app.ActivityThread.main(ActivityThread.java:5254)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at java.lang.reflect.Method.invoke(Native Method)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at java.lang.reflect.Method.invoke(Method.java:372)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
08-22 04:44:31.332: E/AndroidRuntime(2104): Caused by: android.view.InflateException: Binary XML file line #32: Error inflating class android.support.design.widget.TextInputLayout
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:757)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.view.LayoutInflater.parseInclude(LayoutInflater.java:916)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:802)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at br.com.customsearchable.SearchActivity.onCreate(SearchActivity.java:66)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.app.Activity.performCreate(Activity.java:5990)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
08-22 04:44:31.332: E/AndroidRuntime(2104):     ... 10 more
08-22 04:44:31.332: E/AndroidRuntime(2104): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.design.widget.TextInputLayout" on path: DexPathList[[zip file "/data/app/br.com.edsilfer-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
08-22 04:44:31.332: E/AndroidRuntime(2104):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.view.LayoutInflater.createView(LayoutInflater.java:571)
08-22 04:44:31.332: E/AndroidRuntime(2104):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
08-22 04:44:31.332: E/AndroidRuntime(2104):     ... 22 more
08-22 04:44:31.332: E/AndroidRuntime(2104):     Suppressed: java.lang.ClassNotFoundException: android.support.design.widget.TextInputLayout
08-22 04:44:31.332: E/AndroidRuntime(2104):         at java.lang.Class.classForName(Native Method)
08-22 04:44:31.332: E/AndroidRuntime(2104):         at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
08-22 04:44:31.332: E/AndroidRuntime(2104):         at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
08-22 04:44:31.332: E/AndroidRuntime(2104):         at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
08-22 04:44:31.332: E/AndroidRuntime(2104):         ... 25 more
08-22 04:44:31.332: E/AndroidRuntime(2104):     Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

РЕДАКТИРОВАТЬ № 2

Вышеупомянутая ошибка была устранена путем добавления элемента <activity> для SearchActivity в манифест моего проекта. Теперь я получаю android.view.InflateException: Error Inflating class android.support.design.widget.TextInputLayout. Я добавил библиотеку дизайна. Ниже вы можете увидеть логарифм для исключения и свойства проекта для проекта библиотеки дизайна.

Логкат

08-22 05:44:34.827: E/AndroidRuntime(2582): FATAL EXCEPTION: main
08-22 05:44:34.827: E/AndroidRuntime(2582): Process: br.com.edsilfer, PID: 2582
08-22 05:44:34.827: E/AndroidRuntime(2582): java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.edsilfer/br.com.customsearchable.SearchActivity}: android.view.InflateException: Binary XML file line #32: Error inflating class android.support.design.widget.TextInputLayout
08-22 05:44:34.827: E/AndroidRuntime(2582):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at android.app.ActivityThread.access$800(ActivityThread.java:151)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at android.os.Handler.dispatchMessage(Handler.java:102)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at android.os.Looper.loop(Looper.java:135)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at android.app.ActivityThread.main(ActivityThread.java:5254)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at java.lang.reflect.Method.invoke(Native Method)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at java.lang.reflect.Method.invoke(Method.java:372)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
08-22 05:44:34.827: E/AndroidRuntime(2582): Caused by: android.view.InflateException: Binary XML file line #32: Error inflating class android.support.design.widget.TextInputLayout
08-22 05:44:34.827: E/AndroidRuntime(2582):     at android.view.LayoutInflater.createView(LayoutInflater.java:633)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at android.view.LayoutInflater.parseInclude(LayoutInflater.java:916)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:802)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)
08-22 05:44:34.827: E/AndroidRuntime(2582):     at br.com.customsearchable.SearchActivity.onCreate(SearchActivity.java:66)
...
08-22 05:44:34.827: E/AndroidRuntime(2582): Caused by: java.lang.reflect.InvocationTargetException
...
08-22 05:44:34.827: E/AndroidRuntime(2582): Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/design/R$styleable;
...
...
java.lang.ClassNotFoundException: android.support.design.R$styleable
...
08-22 05:44:34.827: E/AndroidRuntime(2582):     Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

введите здесь описание изображения


РЕДАКТИРОВАТЬ 4:

После удаления (из эмулятора) и переустановки приложения оно как-то работает, т.е. в появлении активности нет исключения, но голосовой поиск и поисковые подсказки по-прежнему не работают . =/


person Solace    schedule 22.08.2015    source источник
comment
‹activity android:name=br.com.edsilfer.br.com.customsearchable.SearchActivity android:launchMode=singleTop android:windowSoftInputMode=adjustResize|stateVisible android:theme=@style/Theme.AppCompat.Translucent › ‹/activity› попробовать активность имя с именем родительского пакета, а затем дайте мне знать   -  person mfaisalhyder    schedule 22.08.2015
comment
@MFaisalHyder также попробуйте имя действия с именем родительского пакета. Если вы говорите о манифесте проекта библиотеки, который опубликован в вопросе, имя действия — SearchActivity. Я уже добавил к нему имя родительского пакета, сделав его android:name="br.com.customsearchable.SearchActivity".   -  person Solace    schedule 22.08.2015
comment
@MFaisalHyder или вы просите меня добавить это в манифест проекта dmeo? Пакет br.com.edsilfer находится в демонстрационном проекте, а пакет br.com.customsearchable — в проекте библиотеки. Я не уверен в том, что вы спросили. Можете уточнить, тогда я сделаю и отчитаюсь.   -  person Solace    schedule 22.08.2015
comment
stackoverflow .com/questions/6157616/ проверьте эту тему   -  person mfaisalhyder    schedule 22.08.2015
comment
@MFaisalHyder Из этого ответа объявления должны ссылаться на компоненты библиотеки по их полным именам пакетов, поэтому я считаю, что полное имя действия - br.com.customsearchable.SearchActivity. Я прав?   -  person Solace    schedule 22.08.2015
comment
Я публикую свой ответ, я постараюсь максимально подробно его описать, а пока попробуйте проверить, все ли действия в библиотечных проектах объявлены в манифесте или, по крайней мере, тот, который вы вызываете в своем приложении?   -  person mfaisalhyder    schedule 22.08.2015
comment
@MFaisalHyder Круто. Пожалуйста, также смотрите редактирование в моем вопросе. Большое вам спасибо за ваше время.   -  person Solace    schedule 22.08.2015
comment
вам нужно добавить библиотеку поддержки дизайна для этой ошибки.   -  person SRB Bans    schedule 22.08.2015
comment
@sourabhbans Есть ли эта библиотека в SDK?   -  person Solace    schedule 22.08.2015
comment
да, вы можете найти его так: D:\00_DEVELOPEMENT\00_DEVELOPEMENT\sdk_android\extras\android\support   -  person SRB Bans    schedule 22.08.2015
comment
и импортируйте его в eclipse и обязательно проверьте копию в рабочей области.   -  person SRB Bans    schedule 22.08.2015
comment
@sourabhbans Сразу после того, как я импортировал библиотеку поддержки дизайна в свою рабочую область, я получил массу ошибок в консоли. Вы можете найти их здесь в текстовом файле, добавляя к вопросу увеличивалось лимит текста моего вопроса   -  person Solace    schedule 22.08.2015
comment
как вы используете Intent? опубликовать часть намерения, а также   -  person mfaisalhyder    schedule 22.08.2015
comment
перейдите к свойствам вашей библиотеки дизайна ›› выберите Android › › проверьте версию Android 5.0 или выше › › проверьте библиотеку › › добавьте приложение библиотеки compat_v7 ›› нажмите «Применить» и «ОК»   -  person SRB Bans    schedule 22.08.2015
comment
@sourabhbans Сделал все это. Смотрите скриншот в последнем редактировании вопроса   -  person Solace    schedule 22.08.2015
comment
@sourabhbans Смотрите мое последнее редактирование внизу вопроса. Если вы можете опубликовать все, что вы сказали в качестве ответа, я буду рад принять это. Это поможет любым будущим посетителям.   -  person Solace    schedule 22.08.2015


Ответы (3)


Возможно, отсутствует фильтр намерений лаунчера...

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name">
        <activity android:name="br.com.customsearchable.SearchActivity"
                  android:launchMode="singleTop"
                  android:windowSoftInputMode="adjustResize|stateVisible"
                  android:theme="@style/Theme.AppCompat.Translucent" >
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        </activity>
    </application>

Попробуйте с этим и дайте мне знать, если это сработает.

person Ferencz Andras    schedule 22.08.2015
comment
Но это библиотечный проект, какой там толк от лаунчера! - person Solace; 22.08.2015

проверьте эти две ссылки для получения справки: One и этот.

Перед использованием любого действия Библиотечного проекта каждое его действие и другие части должны быть объявлены в файле манифеста.

Для вашей части Intent попробуйте следующее:

Intent i = new Intent();
i.setClassName("base.package.name.of.your.app","br.com.customsearchable.SearchActivity");
startActivity(i);

//*****Another way******\\
Intent i = new Intent(getApplicationContext(),br.com.customsearchable.SearchActivity.class);
startActivity(i);

Еще одна вещь: некоторые люди также обнаружили, что это проблема Eclipse (Как этот), попробуйте обновить Eclipse.

Надеюсь, я помог вам.!

person mfaisalhyder    schedule 22.08.2015
comment
Привет, эта проблема была решена после добавления объявления Activity в манифест моего проекта. Но потом я получил exception, потому что не добавил библиотеку дизайна поддержки. Я добавил это, но все еще получаю это исключение. Добавление редактирования в вопрос. - person Solace; 22.08.2015

На самом деле ошибка, с которой вы столкнулись, из-за отсутствия библиотеки поддержки дизайна. вы можете выполнить шаги для импорта. перейдите к свойствам вашей библиотеки дизайна >> выберите Android >> проверьте версию Android 5.0 или выше >> проверьте библиотеку >> добавьте библиотеку appcompat_v7 >> нажмите «Применить» и «ОК».

person SRB Bans    schedule 22.08.2015