如何找到适当的android:name来解决" java.lang.ClassNotFoundException"

时间:2014-07-04 13:49:03

标签: android eclipse adt

我正在尝试使用动态添加的片段。 我的2个片段被调用:library_view和controls_view以及main_layout.xml是主要布局。

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

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

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity android:name="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>

我的主要课程是MainActivity.java。我检查了Android私有库选项。

import com.example.fragmentstest.R;

import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;


public class MainActivity extends Activity{
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main_layout);
        //add fragments programatically

        //ref to frag manager
        FragmentManager fragmentManager = getFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.add(R.id.present_activity_fragment, new LibraryActivity());
        fragmentTransaction.add(R.id.select_fragment, new SelectActivity());
        fragmentTransaction.commit();
    }

}

我在<activity>中使用了android:name,因为它出现在auto-suggets中,但我想我做错了。

也尝试失败:

  • .MainActivity
  • com.example.fragmentstest.MainActivity

所以我的问题是,如何确定android:name字段的确切值?

我的代码中的MainActivity类扩展了Activity,两个片段扩展了Fragments类。

这是错误日志:

07-04 19:00:05.933: E/AndroidRuntime(18127): java.lang.RuntimeException: Unable to instantiate application com.example.fragmentstest.MainActivity: java.lang.ClassNotFoundException: Didn't find class "com.example.fragmentstest.MainActivity" on path: DexPathList[dexElements=[zip file "/data/app/com.example.fragmentstest-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.fragmentstest-2, /vendor/lib, /system/lib]]

2 个答案:

答案 0 :(得分:0)

更改

<activity android:name="MainActivity"

<activity android:name=".MainActivity"

答案 1 :(得分:0)

您必须在活动代码的第一行中提及您的包名称 像这样

package com.SHINE.ui;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Mapactivity extends Activity implements OnClickListener,
        TranslationListner, OnTouchListener {

这里我的XML清单中的代码是

<activity
            android:name="com.SHINE.ui.Mapactivity"