【问题标题】:Simple android application with roboguice throwing exceptions带有 roboguice 抛出异常的简单 android 应用程序
【发布时间】:2012-04-08 18:10:19
【问题描述】:

我有一个非常简单的应用程序,但是当我添加 roboguice 时它会抛出

java.lang.RuntimeException:无法实例化应用程序 com.MyFirstApp.MyFirstApplication:java.lang.ClassNotFoundException: com.MyFirstApp.MyFirstApplication

应用类:

public class MyFirstApplication extends RoboApplication {

    @Override
    protected void addApplicationModules(List<Module> modules) {
        //modules.add(new DefaultModule());
    }
}

MainActivity:

public class MainActivity extends RoboActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

清单:

<manifest 
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.MyFirstApp"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk 
        android:minSdkVersion="14" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:name="MyFirstApplication">
        <activity
            android:name="com.MyFirstApp.Activities.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action 
                    android:name="android.intent.action.MAIN" />
                <category 
                    android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

我已将 guice-2.0-no_aop.jar 和 roboguice-1.1.3.jar 放在 assets 文件夹中,并将它们添加到构建路径中。

当我移除机器人部件时,它工作正常。谁能告诉我我做错了什么。

【问题讨论】:

    标签: android roboguice


    【解决方案1】:

    嗯,我发现了问题所在。我使用的是 SDK v17+,在那个版本中,外部库需要放在“libs”文件夹中,并且只能放在 libs 文件夹中。所以我找到了所有的教程,他们只是把它放在错误的资产文件夹中。

    我在哪里得到了我正在寻找的答案的链接:http://groups.google.com/group/roboguice/browse_thread/thread/474116b052050ae2

    【讨论】:

      【解决方案2】:

      首先,从RoboApplication 扩展是 RoboGuice 1.x 的东西,您应该真正使用 RoboGuice 2.0(您不再需要这样做)。现在,对于您的例外,您的 Application 课程真的在 com.MyFirstApp.MyApplication 吗?如果没有,您需要更新 name 属性以匹配。

      【讨论】:

      • 当我使用 1.1.3 时,我确实需要从 RoboApplication 扩展,对吗?我也 100% 确定它所在的位置。
      • 好的,按照你的建议升级到2.0。该应用程序有效。但该活动现在引发错误。没有 RoboActivity 它可以使用它只是说:java.lang.RuntimeException:无法实例化活动 ComponentInfo{com.MyFirstApp/com.MyFirstApp.Activities.MainActivity}:java.lang.ClassNotFoundException:com.MyFirstApp.Activities.MainActivity跨度>
      • Roboguice 2.0 仍处于测试阶段。索伦勋爵为什么要使用它?我对 2.0 进行了两次认真的尝试,花了几天的时间进行故障排除,即使在论坛上寻求支持后,问题仍然没有得到解决。我还在用 1.1.1。
      • 好吧,如果你想使用 Fragments,你几乎必须使用 2.0(如果你刚刚开始,为什么不呢?)。我承认从 1.1 升级有点痛苦,但绝对值得。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-10
      • 2017-05-03
      • 1970-01-01
      • 2013-06-02
      相关资源
      最近更新 更多