0

私はこれに少し立ち往生しています。ClassNotFoundExceptionそのようなクラスがあるにもかかわらず、Android は を投げています。

04-20 09:07:50.179: E/AndroidRuntime(525): FATAL EXCEPTION: main
04-20 09:07:50.179: E/AndroidRuntime(525): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.company.app/com.company.app.Main}: java.lang.ClassNotFoundException: com.company.app.Main
04-20 09:07:50.179: E/AndroidRuntime(525):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1880)
04-20 09:07:50.179: E/AndroidRuntime(525):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
04-20 09:07:50.179: E/AndroidRuntime(525):  at android.app.ActivityThread.access$600(ActivityThread.java:123)
04-20 09:07:50.179: E/AndroidRuntime(525):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
04-20 09:07:50.179: E/AndroidRuntime(525):  at android.os.Handler.dispatchMessage(Handler.java:99)
04-20 09:07:50.179: E/AndroidRuntime(525):  at android.os.Looper.loop(Looper.java:137)
04-20 09:07:50.179: E/AndroidRuntime(525):  at android.app.ActivityThread.main(ActivityThread.java:4424)
04-20 09:07:50.179: E/AndroidRuntime(525):  at java.lang.reflect.Method.invokeNative(Native Method)
04-20 09:07:50.179: E/AndroidRuntime(525):  at java.lang.reflect.Method.invoke(Method.java:511)
04-20 09:07:50.179: E/AndroidRuntime(525):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
04-20 09:07:50.179: E/AndroidRuntime(525):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
04-20 09:07:50.179: E/AndroidRuntime(525):  at dalvik.system.NativeStart.main(Native Method)
04-20 09:07:50.179: E/AndroidRuntime(525): Caused by: java.lang.ClassNotFoundException: com.company.app.Main
04-20 09:07:50.179: E/AndroidRuntime(525):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
04-20 09:07:50.179: E/AndroidRuntime(525):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
04-20 09:07:50.179: E/AndroidRuntime(525):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
04-20 09:07:50.179: E/AndroidRuntime(525):  at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
04-20 09:07:50.179: E/AndroidRuntime(525):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1871)
04-20 09:07:50.179: E/AndroidRuntime(525):  ... 11 more

Maininと呼ばれるクラスがありMain.javaます。

public class Main extends FragmentActivityパッケージに入っていますcom.company.app

以前は機能していましたが、今日アプリの作業に戻ると、機能しなくなりました。何が起こったのかわかりません。

マニフェストで正しく定義されています。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.company.app"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="4" />
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" 
        android:theme="@android:style/Theme.Light" >
        <activity
            android:label="@string/app_name"
            android:name=".Main" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

私が試したいくつかのこと:

  • Eclipse の再起動
  • エミュレーターの再起動
  • エミュレーターでのアプリのアンインストールと再インストール
  • プロジェクトのクリーニング。
  • とがビルド パスのタブにあるかどうかgenを確認しています。srcSource

現状では、現在のプロジェクトを放棄して、最初からやり直す必要があるかもしれません。

どんな助けでも大歓迎です。

アップデート:

の代わりにMain拡張する場合、アプリは機能します。おそらく、それは Android サポート パッケージの何かでしょうか?ActivityFragmentActivity

更新 2:

私はそれがかなり確信しています。サポート パッケージを使用せずFragment、Android 3.0 以降の通常のクラスを使用すると、アプリは正常に動作します。


この問題は修正されました。:)

何らかの理由で、Android サポート パッケージ/libsがプロジェクトのディレクトリから削除され、外部の場所 (ディレクトリの外部workspace) から参照されていました。

Abdu Egal の最初の回答は、彼が正しい道を示してくれたので、正しいものとしてマークします。

4

5 に答える 5

1

メイン アクティビティの onCreate にエラーがあるようです。もしそうなら、あなたは onCreate(Bundle savedInstance) を提供しましたか、それをクリアして、それが機能するかどうかを確認してください。

それでもうまくいかない場合は、FrameActivity を拡張する代わりに Activity を拡張してみてください。

幸運を

于 2012-04-20T08:49:33.677 に答える
0

FragmentActivityを間違った方法で使用したと思います。FragmentActivitiesは通常のアクティビティの一部である必要があると思います。以下を参照してください。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
    <fragment
        android:name="com.mamlambo.tutorial.tutlist.TutListFragment"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:id="@+id/tutlist_fragment"
        android:layout_weight="45">
    </fragment>
    <fragment
        android:name="com.mamlambo.tutorial.tutlist.TutViewerFragment"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:id="@+id/tutview_fragment"
        android:layout_weight="55">
    </fragment>
</LinearLayout>

このリンクからの抜粋(パート9)

http://mobile.tutsplus.com/tutorials/android/android-sdk_fragments/

于 2012-04-20T08:58:30.490 に答える
0

MobilTuts サンプルでも同じ問題が発生しました。問題はサポート ライブラリにありました。ビルド ターゲットを 10 よりも高い API (たとえば 15 など) に変更したところ、すべてのエラーが消えました。

プロジェクトのプロパティ --> Android --> プロジェクトのビルド ターゲット --> 15 に設定します。

推奨事項:マニフェスト内の MIN API を少なくとも 8 に設定します。

于 2014-10-03T14:44:14.280 に答える
0

プロジェクト フォルダを右クリック => プロパティ => Java ビルド パス => 注文とエクスポート => [Android Private Libraries] チェックボックスがオンになっていない場合はオンにします。きれいにします。そしてそれは動作します!

于 2013-06-21T14:12:11.253 に答える
0

終了の詳細から、 FrameActivity を AndroidManifest.xml に宣言するのを忘れたと思います。 AndroidManifest.xml ファイルのエントリを確認してください。

于 2012-04-20T08:55:17.757 に答える