0

我正在尝试使用这个库。但是 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。我添加了设计库。您可以在下面看到异常的 logcat 和设计库项目的项目属性

日志猫

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:

删除(从模拟器中)并重新安装应用程序后,它以某种方式工作,即活动外观没有异常,但语音搜索和搜索建议仍然不起作用。=/

4

3 回答 3

1

实际上您面临的错误是由于缺少设计支持库。您可以按照步骤导入。转到您的设计库的属性>>选择android>>检查android 5.0或更高版本>>检查是库>>添加库appcompat_v7>>单击应用并确定

于 2015-08-22T10:57:12.887 回答
1

也许,启动器意图过滤器丢失了......

<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>

试试这个,让我知道它是否有效。

于 2015-08-22T08:08:06.343 回答
1

检查这两个链接以获得帮助: 一个这个

在使用图书馆项目的任何活动之前,必须在清单文件中声明其每个活动和其他部分。

对于您的 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。

希望我对你有帮助。!

于 2015-08-22T09:34:12.420 回答