0

私は依存性注入とロボギースの初心者です。アプリにビューとリソースを挿入できるようにしたいだけです。問題は、クラスを RoboActivity で拡張すると ClassNotFoundException が発生することです。

package tes.tes;
//imports
public class test extends RoboActivity {
/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);
}

スタックトレースは次のとおりです。

  06-09 13:54:08.887: ERROR/AndroidRuntime(495): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{tes.tes/tes.tes.test}:java.lang.ClassNotFoundException: tes.tes.test in loader dalvik.system.PathClassLoader[/data/app/tes.tes-1.apk]
  06-09 13:54:08.887: ERROR/AndroidRuntime(495):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
  06-09 13:54:08.887: ERROR/AndroidRuntime(495):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
...
  06-09 13:54:08.887: ERROR/AndroidRuntime(495): Caused by: java.lang.ClassNotFoundException: tes.tes.test in loader dalvik.system.PathClassLoader[/data/app/tes.tes-1.apk]
  06-09 13:54:08.887: ERROR/AndroidRuntime(495):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243
...

そして私のマニフェスト

coding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="tes.tes"
      android:versionCode="1"
      android:versionName="1.0">


    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".test"
                  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 や roboguice などの jar ファイルを確認できるので、依存関係は問題ないと思います。ドキュメントに従ってサンプル コードをダウンロードしようとしましたが、複雑すぎました。何が欠けているのかわからない。

助けてくれてありがとう。

4

3 に答える 3

1

RoboGuice 2.0 でこの動作が変更されたため、新しい回答を送信します。ここで、roboguice.xml という名前の XML ファイルを res/values/ に作成します。次のように、そこにモジュールをリストします。

<?xml version="1.0" encoding="utf-8"?>
  <resources> 
    <string-array name="roboguice_modules">
    <item>com.example.CustomRenderModule</item>
    <item>com.you.yourmodule.TexModule</item>
  </string-array>
</resources>

もう一つの例。

于 2013-03-26T21:28:12.737 に答える
0

RoboApplication を適切に拡張していません。完全なRoboGuice インストール チュートリアルを実行することを検討してください。

于 2011-06-09T16:12:43.837 に答える
0

マニュアルに従い、適切な命名規則を使用したところ、うまくいきました!

この行ですが

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

RoboApplication を拡張する MyApplication.java にエラーがあり、@Override を削除すると表示されます。@Override を削除すると、RoboApplication にある別のメソッドと衝突すると表示されます。どうしてか分かりません。

于 2011-06-10T08:17:26.013 に答える