6

This is my first project in Android, that means that I am newbie at programming it. I know here on forum is a lot of pages describing solution for my problem, but now I lost 2 days in still don't get the solution. Please help me!

First of all my errors:

01-02 11:08:27.314: D/AndroidRuntime(1045): Shutting down VM
01-02 11:08:27.314: W/dalvikvm(1045): threadid=1: thread exiting with uncaught exception (group=0x409e61f8)
01-02 11:08:27.324: E/AndroidRuntime(1045): FATAL EXCEPTION: main
01-02 11:08:27.324: E/AndroidRuntime(1045): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.wifiscan/com.example.wifiscan.activity_wifi_scan}: java.lang.ClassNotFoundException: com.example.wifiscan.activity_wifi_scan
01-02 11:08:27.324: E/AndroidRuntime(1045):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1880)
01-02 11:08:27.324: E/AndroidRuntime(1045):     at  android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
01-02 11:08:27.324: E/AndroidRuntime(1045):     at android.app.ActivityThread.access$600(ActivityThread.java:123)
01-02 11:08:27.324: E/AndroidRuntime(1045):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
01-02 11:08:27.324: E/AndroidRuntime(1045):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-02 11:08:27.324: E/AndroidRuntime(1045):     at android.os.Looper.loop(Looper.java:137)
01-02 11:08:27.324: E/AndroidRuntime(1045):     at android.app.ActivityThread.main(ActivityThread.java:4424)
01-02 11:08:27.324: E/AndroidRuntime(1045):     at java.lang.reflect.Method.invokeNative(Native Method)
01-02 11:08:27.324: E/AndroidRuntime(1045):     at java.lang.reflect.Method.invoke(Method.java:511)
01-02 11:08:27.324: E/AndroidRuntime(1045):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-02 11:08:27.324: E/AndroidRuntime(1045):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-02 11:08:27.324: E/AndroidRuntime(1045):     at dalvik.system.NativeStart.main(Native Method)
01-02 11:08:27.324: E/AndroidRuntime(1045): Caused by: java.lang.ClassNotFoundException: com.example.wifiscan.activity_wifi_scan
01-02 11:08:27.324: E/AndroidRuntime(1045):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
01-02 11:08:27.324: E/AndroidRuntime(1045):     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
01-02 11:08:27.324: E/AndroidRuntime(1045):     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
01-02 11:08:27.324: E/AndroidRuntime(1045):     at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
01-02 11:08:27.324: E/AndroidRuntime(1045):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1871)
01-02 11:08:27.324: E/AndroidRuntime(1045):     ... 11 more

My WifiScan:

 public class WifiScan extends Activity implements OnClickListener {      
     WifiManager wifi;       
     ListView lv;
     TextView textStatus;
     Button buttonScan;
     int size = 0;
     List<ScanResult> results;
 
     String ITEM_KEY = "key";
     ArrayList<HashMap<String, String>> arraylist = new ArrayList<HashMap<String, String>>();
     SimpleAdapter adapter;
 
     /* Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) 
     {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_wifi_scan);
 
         buttonScan = (Button) findViewById(R.id.scan);
         buttonScan.setOnClickListener(this);
         lv = (ListView)findViewById(R.id.list);
 
         wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
         if (wifi.isWifiEnabled() == false)
         {
             Toast.makeText(getApplicationContext(), "wifi is disabled..making it enabled", Toast.LENGTH_LONG).show();
             wifi.setWifiEnabled(true);
         }   
         wifi.startScan(); //js dopisal
      //   this.adapter = new SimpleAdapter(WiFiDemo.this, arraylist, R.layout.row, new String[] { ITEM_KEY }, new int[] { R.id.list_value });
         lv.setAdapter(this.adapter);
 
              registerReceiver(new BroadcastReceiver()
         {
             @Override
             public void onReceive(Context c, Intent intent) 
             {
                results = wifi.getScanResults();
                size = results.size();
             }
         }, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));                    
     }
 
     public void onClick(View view) 
     {
         arraylist.clear();          
         wifi.startScan();
 
              Toast.makeText(this, "Scanning...." + size, Toast.LENGTH_SHORT).show();
         try 
         {
             size = size - 1;
             while (size >= 0) 
             {   
                 HashMap<String, String> item = new HashMap<String, String>();                       
                 item.put(ITEM_KEY, results.get(size).SSID + "  " + results.get(size).capabilities);
 
                 arraylist.add(item);     
                size--;
                 adapter.notifyDataSetChanged();                 
             } 
         }
         catch (Exception e)
         { }         
     }    
 }

My activity_wifi_scan.xml file:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/TableLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".WifiScan" >

    <Button    
        android:id="@+id/scan"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="scan"
        android:text="SCAN" />

    <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</TableLayout>

And my AndroidManifest file:

<?xml version="1.0" encoding="utf-8"?>
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.example.wifiscan"
     android:versionCode="1"
          android:versionName="1.0" >
    
        <uses-premission android:name="android.permission.ACCESS_WIFI_STATE"/>
         <uses-permission android:name="android.permission.WAKE_LOCK"/>
        <uses-permission android:name="android.permission.INTERNET"/>
     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
     <uses-permission android:name="android.permission.INTERNET"></uses-permission>
     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
     <uses-permission android:name="android.permission.READ_PHONE_STATE"> </uses-permission>
     <uses-permission android:name="android.permission.INTERNET"> </uses-permission>

     <uses-sdk
          android:minSdkVersion="8"
         android:targetSdkVersion="17" />
     
     <application
         android:allowBackup="true"
         android:icon="@drawable/ic_launcher"
         android:label="@string/app_name"
         android:theme="@style/AppTheme" >
     
     <activity android:name=".activity_wifi_scan">
         <intent-filter>
                 <action android:name="android.intent.action.MAIN"></action>
                 <category android:name="android.intent.category.LAUNCHER"></category>
                 <data />
         </intent-filter>
     </activity>
     
     <receiver android:name=".activity_wifi_scan">
         <intent-filter>
             <action android:name="android.intent.action.MAIN" />
             <category android:name="android.intent.category.LAUNCHER"/>
            <action android:name="android.net.wifi.WIFI_STATE_CHANGED"/>
         </intent-filter>
     </receiver>        
     </application>
 </manifest>

5 Answers5

3

Your activity name is WifiScan but you have declared it as .activity_wifi_scan change it and try again.

Change the <activity> element to:

<activity android:name=".WifiScan">
         <intent-filter>
                 <action android:name="android.intent.action.MAIN"></action>
                 <category android:name="android.intent.category.LAUNCHER"></category>
                 <data />
         </intent-filter>
     </activity>
juan.facorro
  • 9,791
  • 2
  • 33
  • 41
vinoth
  • 485
  • 4
  • 16
  • 1
    My class name is WifiScan, yes, and I don't see why is wrong to have .activity_wifi_scan in xml, after all you sdetContentView by R.layout.activity_wifi_scan. So ? – IndexOutOfDevelopersException May 18 '13 at 17:16
  • *vinoth* provided the solution, in AndroidManifest you have to put the Activity class name (either relative to `package` declared, either the canonical class name) – gunar Jun 20 '13 at 06:11
0

try to add your activity com.example.wifiscan.activity_wifi_scan to your AndroidManifest.xml

AITAALI_ABDERRAHMANE
  • 2,499
  • 1
  • 26
  • 31
0

You did not initialise your activity in your manifest file

Jithu
  • 1,478
  • 1
  • 13
  • 21
0

Solution 1: Try cleaning your project,restarting eclipse. Solution 2: Check manifest file. Solution 3: Check if the tag and tag in the manifest file match upto the correct location of the activity.

It would help if you can post your code.

Kunal Khaire
  • 307
  • 2
  • 7
0

I was having this error and after hours of searching I've came out it was my mistake (Oh! But this is impossible! LOL).

The problem for me was that I've added the android:theme="@style/Theme.appcompat.Light" to the layout XMLs instead of the app manifest.

As soon I've removed the atributes from the layouts and replaced the one on the manifest everything worked like expected.

Ricardo Souza
  • 16,030
  • 6
  • 37
  • 69