coder65
coder65

Reputation: 61

Didn't find class on path: DexPathList

I used a receiver in this code after running and receiving a sms this error is shown. I try some thing. I create new project and add file again. delete bin file. clean and restart project. but It doesn't solve the error. Is there anything that can solve this error. I really cant solved it.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="blocker.activity"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.READ_CONTACTS" /> 
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>

<uses-sdk android:minSdkVersion="8" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity

        android:name=".FirstPage"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

 <receiver android:name=".receiver.SMSReceiver" android:enabled="true">
<intent-filter android:priority="999">
    <action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>


    <activity

        android:name=".Search"
        android:label="@string/app_name" >

    </activity>

    <activity

        android:name=".BlockActivity"
        android:label="@string/app_name" >

    </activity>


    <activity
        android:name=".SmsFilter"
        android:label="@string/app_name" >

    </activity>


    <activity
        android:name=".CustomAdapter"
        android:label="@string/app_name" >

    </activity>
    </application>

  </manifest>

error: enter image description here

property:

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

the class for sms receiver:

public class SmsFilter extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {




    if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
        Bundle extras = intent.getExtras();
        if (extras != null) {
            Object[] pdus = (Object[])extras.get("pdus");

            if (pdus.length < 1) return; // Invalid SMS. Not sure that it's possible.

            StringBuilder sb = new StringBuilder();
            String sender = null;
            for (int i = 0; i < pdus.length; i++) {
                SmsMessage message = SmsMessage.createFromPdu((byte[]) pdus[i]);
                if (sender == null) sender = message.getOriginatingAddress();
                String text = message.getMessageBody();
                if (text != null) sb.append(text);
            }

            Log.i("LOG: ", "sms recived");
            Log.i("LOG: ", sender);



            if (sender != null &&  Search.search(sender)==true) {


                 abortBroadcast();

            }
            return;
        }
    }

    // ...
}




}

Upvotes: 1

Views: 1293

Answers (1)

RajSharma
RajSharma

Reputation: 1971

Please check again the name of the receiver and the class name you declared in your manifest receiver.

In in java file the class name is-SmsFilter extends BroadcastReceiver

SmsFilter extends BroadcastReceiver

As you can see the name is SmsFilter but in your manifest file you are declaring it as SMSReceiver

The names are not matching. Edit your manifest to something like this-

<receiver android:name=".receiver.SmsFilter" android:enabled="true">
<intent-filter android:priority="999">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>

I hope it would help you..

Upvotes: 1

Related Questions