3

私はAndroidアプリケーションに取り組んでおり、ログにこれを取得しています:

06-13 15:35:11.140: E/AndroidRuntime(21290): FATAL EXCEPTION: main
06-13 15:35:11.140: E/AndroidRuntime(21290): java.lang.NoClassDefFoundError: com.protocolanalyzer.andres.LogicAnalizerActivity
06-13 15:35:11.140: E/AndroidRuntime(21290):    at com.multiwork.andres.MainMenu.<clinit>(MainMenu.java:37)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at java.lang.Class.newInstanceImpl(Native Method)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at java.lang.Class.newInstance(Class.java:1319)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at android.app.Instrumentation.newActivity(Instrumentation.java:1054)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2220)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at android.app.ActivityThread.access$600(ActivityThread.java:156)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1250)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at android.os.Handler.dispatchMessage(Handler.java:99)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at android.os.Looper.loop(Looper.java:137)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at android.app.ActivityThread.main(ActivityThread.java:5238)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at java.lang.reflect.Method.invokeNative(Native Method)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at java.lang.reflect.Method.invoke(Method.java:511)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at dalvik.system.NativeStart.main(Native Method)

Android を実行しようとすると、クラス com.protocolanalyzer.andres.LogicAnalizerActivity が見つからないことがわかります。これはかなり奇妙に思えます。すべてのアクティビティはうまく動作しますが、この特定のアクティビティがこのエラーを引き起こしています。ListView からアクティビティを開始する方法は次のとおりです。

private static final Class<?>[] className = {LCView.class, FrecView.class,
        LogicAnalizerActivity.class, BrazoRobot.class, PruebaParser.class};

setListAdapter(new ArrayAdapter<String>(MainMenu.this, android.R.layout.simple_list_item_1, MenuNames));

@Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        if(DEBUG) Log.i("MainMenu", "onListItemClick() - Position: " + position);

        Intent mIntent = new Intent(MainMenu.this, className[position]);
        startActivity(mIntent);
    }

これは私の LogicAnalyzerActivity です。パッケージと名前が正しいことがわかります。

package com.protocolanalyzer.andres;

public class LogicAnalizerActivity extends SherlockFragmentActivity implements OnActionBarClickListener, OnNewBluetoothDataReceived{

そして Manifest.xml:

<activity
            android:screenOrientation="landscape"
            android:name="com.protocolanalyzer.andres.LogicAnalizerActivity"
            android:label="@string/app_name" >
        </activity>

何が起こっている?私は試した:

  • アプリの再インストール
  • 電話データのワイプ
  • Eclipse の再起動
  • 清掃プロジェクト
  • 配列com.protocolanalyzer.andres.LogicAnalizerActivity.classの代わりに使用するLogicAnalizerActivity.class
4

2 に答える 2

3

AndroidManifest.xml ファイルには と書かれていますandroid:name="com.protocolanalyzer.andres.LogicAnalizerPrefs"が、必要なクラスは実際にはandroid:name="com.protocolanalyzer.andres.LogicAnalizerActivity".

于 2013-06-13T18:47:32.287 に答える
0

adt を rev 22 に更新した場合は、以下を試してください

プロジェクトを右クリックしてプロパティに移動します。Java ビルド パス。注文エクスポートタブを選択します。Android プライベート ライブラリが選択されていることを確認します。ライブラリ プロジェクトを参照している場合。ライブラリ プロジェクトについても同じことを行います。クリーンアンドビルド。

于 2013-06-13T18:52:46.090 に答える