0

ライブラリとしてマークされたプロジェクトと、そのライブラリを使用するメインプロジェクトがあります。すべてが正常であるように見えます。メインプロジェクトのマニフェストには、ホール名(package.name)のライブラリからのアクティビティがありますが、メインアクティビティをインポートするライブラリクラスを呼び出す方法がわかりません(importcom.example。 libreriasuscripcion.MainActivity;)ライブラリからメインに、そして私が次のように呼び出すと:

@Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Log.d("Juego - onCreate", "en Onclick");
        Intent i = new Intent(getBaseContext(), MainActivity.class);
        startActivity(i);
    }

エラーがあります:これはlogCatです

03-21 09:45:00.534: E/AndroidRuntime(413): FATAL EXCEPTION: main
03-21 09:45:00.534: E/AndroidRuntime(413): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.juego/com.example.libreriasuscripcion.MainActivity}: java.lang.InstantiationException: com.example.libreriasuscripcion.MainActivity
03-21 09:45:00.534: E/AndroidRuntime(413):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
03-21 09:45:00.534: E/AndroidRuntime(413):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
03-21 09:45:00.534: E/AndroidRuntime(413):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
03-21 09:45:00.534: E/AndroidRuntime(413):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
03-21 09:45:00.534: E/AndroidRuntime(413):  at android.os.Handler.dispatchMessage(Handler.java:99)
03-21 09:45:00.534: E/AndroidRuntime(413):  at android.os.Looper.loop(Looper.java:123)
03-21 09:45:00.534: E/AndroidRuntime(413):  at android.app.ActivityThread.main(ActivityThread.java:4627)
03-21 09:45:00.534: E/AndroidRuntime(413):  at java.lang.reflect.Method.invokeNative(Native Method)
03-21 09:45:00.534: E/AndroidRuntime(413):  at java.lang.reflect.Method.invoke(Method.java:521)
03-21 09:45:00.534: E/AndroidRuntime(413):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
03-21 09:45:00.534: E/AndroidRuntime(413):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
03-21 09:45:00.534: E/AndroidRuntime(413):  at dalvik.system.NativeStart.main(Native Method)
03-21 09:45:00.534: E/AndroidRuntime(413): Caused by: java.lang.InstantiationException: com.example.libreriasuscripcion.MainActivity
03-21 09:45:00.534: E/AndroidRuntime(413):  at java.lang.Class.newInstanceImpl(Native Method)
03-21 09:45:00.534: E/AndroidRuntime(413):  at java.lang.Class.newInstance(Class.java:1429)
03-21 09:45:00.534: E/AndroidRuntime(413):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
03-21 09:45:00.534: E/AndroidRuntime(413):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
03-21 09:45:00.534: E/AndroidRuntime(413):  ... 11 more

手伝っていただけませんか??前もって感謝します

4

4 に答える 4

0

プロジェクトでライブラリを使用する場合は、

1. ライブラリをビルド パスに追加する必要があります。

2.>プロジェクトのプロパティ->javabuild path0>順序とエクスポート->ライブラリの選択に移動します。

3. ライブラリ アクティビティを現​​在のプロジェクト マニフェスト ファイルに追加してください。

4.ケースでは、ライブラリクラスの完全な名前を指定する必要があります

Intent i = new Intent(getBaseContext(), com.example.libreriasuscripcion.MainActivity.class);
于 2013-03-21T10:19:29.350 に答える
0

あなたが言ったように試しましたが、それでも同じエラーです これは私のマニフェストです

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        android:name="com.example.libreriasuscripcion.Almacen" >
        <activity
            android:name="com.example.juego.Juego"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity 
            android:name="com.example.libreriasuscripcion.MainActivity">
        </activity>
        <activity
            android:name="com.example.libreriasuscripcion.Almacen"
            android:label="@string/title_activity_almacen" >
        </activity>
        <activity
            android:name="com.example.libreriasuscripcion.Hello"
            android:label="@string/title_activity_hello" >
        </activity>
    </application>

これが私がライブラリを呼び出す方法です

@Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Log.d("Juego - onCreate", "en Onclick");
                //Intent i = new Intent(getBaseContext(), MainActivity.class);
                intent.setAction(Intent.ACTION_MAIN);
                intent.setClassName(getBaseContext(), "com.example.libreriasuscripcion.MainActivity.class");
                intent.putExtra("code", "795006");
                intent.putExtra("keyword", "testandroid");
                startActivityForResult(intent, 1);
                //startActivity(i);
            }
        });

アプリケーションを使用してデータを保存していますが、エラーだと思って削除し、共有設定を使用してそれを行いました

于 2013-03-21T11:32:59.723 に答える
0

問題は、私がライブラリを作成した方法にありまし。本当に簡単です。次に、使用するクラスをライブラリからインポートして、Android がローカルとして認識するため、通常どおり使用します。

みんなありがとう

于 2013-04-30T15:12:23.407 に答える
0

Eclipse IDE を使用している場合は、エクスポートした APK ファイルにライブラリを含めることを忘れないでください。

プロジェクトを右クリックし、[プロパティ] -> [Java ビルド パス] -> [注文とエクスポート] に移動します。

于 2013-03-21T10:09:25.927 に答える