2016-11-05 3 views
-5

Мое приложение неожиданно падает. Всякий раз, когда я запускаю основную активность моего приложения, он запускается. Но когда я нажимаю кнопку с идентификатором «R.id.msgnow», мое приложение рушится. Я пробовал все решения, данные ранее в stackoverflow, проверял мой manifest.xml и все кажется правильным. Но все же я не мог понять, в чем причина сбоя. Любое предложение будет действительно helpful.ThanksAndroid-приложение, к сожалению,

MainActivity.class

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Button now = (Button) findViewById(R.id.msgnow); 
     assert now != null; 
     now.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       try { 
        Intent i = new Intent(MainActivity.this, Msg_now.class); 
        startActivity(i); 
       } 
       catch (ActivityNotFoundException e){ 
        e.printStackTrace(); 
       } 

      // Toast.makeText(getApplicationContext(), "Add SMS..", Toast.LENGTH_LONG).show(); 
     } 
    }); 

} 
} 

Msg_now.class

public class Msg_now extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_msg_now); 
    EditText cN = (EditText) findViewById(R.id.enter_recipients); 
    EditText msgContent = (EditText) findViewById(R.id.msg_content); 
    Button find = (Button) findViewById(R.id.add_contacts); 
    assert find != null; 
    final String contactName = cN.getText().toString(); 
    final String messageContent = msgContent.getText().toString(); 
    Button send = (Button) findViewById(R.id.msg_send); 
    Intent myIntent = new Intent(this,Contacts.class); 
    myIntent.putExtra("mytext",contactName); 
    startActivity(myIntent); 
    assert send != null; 
    send.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      try { 
       SmsManager smsManager = SmsManager.getDefault(); 
       smsManager.sendTextMessage(contactName, null, messageContent, null, null); 
      } 
      catch (IllegalArgumentException e) { 
       e.printStackTrace(); 
       Toast.makeText(Msg_now.this, "Recepient or message content missing.", Toast.LENGTH_SHORT).show(); 
      } 
     } 

    }); 

    find.setOnClickListener(new View.OnClickListener(){ 
     public void onClick(View view){ 
      Intent i = new Intent(Msg_now.this, Contacts.class); 
      startActivity(i); 
     } 

    }); 

} 

}

Contacts.java

public class Contacts extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_contacts); 
    FragmentManager fragmentManager = getFragmentManager(); 
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
    ContactsFragment fragment = new ContactsFragment(); 
    fragmentTransaction.add(R.id.contacts, fragment); 
    fragmentTransaction.commit(); 
    /*getFragmentManager().beginTransaction() 
      .add(R.id.contacts, new ContactsFragment()) 
      .commit();*/ 
} 
} 

ContactFragment.java

public class ContactsFragment extends Fragment implements LoaderManager.LoaderCallbacks<Cursor>, AdapterView.OnItemClickListener { 

// The column index for the _ID column 
private static final int CONTACT_ID_INDEX = 0; 
// The column index for the LOOKUP_KEY column 
private static final int LOOKUP_KEY_INDEX = 1; 

@SuppressLint("InlinedApi") 
private static final String[] PROJECTION = 
     { 
       ContactsContract.Contacts._ID, 
       ContactsContract.Contacts.LOOKUP_KEY, 
       Build.VERSION.SDK_INT 
         >= Build.VERSION_CODES.HONEYCOMB ? 
         ContactsContract.Contacts.DISPLAY_NAME_PRIMARY : 
         ContactsContract.Contacts.DISPLAY_NAME 

     }; 

@SuppressLint("InlinedApi") 
private static final String SELECTION = 
     Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ? 
       ContactsContract.Contacts.DISPLAY_NAME_PRIMARY + " LIKE ?" : 
       ContactsContract.Contacts.DISPLAY_NAME + " LIKE ?"; 
// Defines a variable for the search string 

Intent intent = getActivity().getIntent(); 
private String mSearchString = intent.getStringExtra("mytext"); 
// Defines the array to hold values that replace the ? 
private String[] mSelectionArgs = { mSearchString }; 

private final static String[] FROM_COLUMNS = { 
     Build.VERSION.SDK_INT 
       >= Build.VERSION_CODES.HONEYCOMB ? 
       ContactsContract.Contacts.DISPLAY_NAME_PRIMARY : 
       ContactsContract.Contacts.DISPLAY_NAME 
}; 
private final static int[] TO_IDS = { 
     android.R.id.text1 
}; 
ListView mContactsList; 
// Define variables for the contact the user selects 
// The contact's _ID value 
long mContactId; 
// The contact's LOOKUP_KEY 
String mContactKey; 
// A content URI for the selected contact 
Uri mContactUri; 
// An adapter that binds the result Cursor to the ListView 
private SimpleCursorAdapter mCursorAdapter; 
//constructor 
public ContactsFragment() {} 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the fragment layout 
    return inflater.inflate(R.layout.contacts,container, false); 
} 

public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    // Gets the ListView from the View list of the parent activity 
    mContactsList = (ListView) getActivity().findViewById(R.id.list); 
    // Gets a CursorAdapter 
    mCursorAdapter = new SimpleCursorAdapter(
      getActivity(), 
      R.layout.contacts, 
      null, 
      FROM_COLUMNS, TO_IDS, 
      0); 
    mContactsList.setAdapter(mCursorAdapter); 
    mContactsList.setOnItemClickListener(this); 
    getLoaderManager().initLoader(0, null, this); 
} 

@Override 
public void onItemClick(
     AdapterView<?> parent, View item, int position, long rowID) { 
    // Get the Cursor 
    Cursor cursor = mCursorAdapter.getCursor(); 
    // Move to the selected contact 
    cursor.moveToPosition(position); 
    // Get the _ID value 
    mContactId = Long.valueOf(CONTACT_ID_INDEX); 
    // Get the selected LOOKUP KEY 
    mContactKey = Integer.toString(LOOKUP_KEY_INDEX); 
    // Create the contact's content Uri 
    mContactUri = ContactsContract.Contacts.getLookupUri(mContactId, mContactKey); 
    /* 
    * You can use mContactUri as the content URI for retrieving 
    * the details for a contact. 
    */ 
} 

@Override 

public Loader<Cursor> onCreateLoader(int loaderId, Bundle args) { 
    /* 
    * Makes search string into pattern and 
    * stores it in the selection array 
    */ 
    mSelectionArgs[0] = "%" + mSearchString + "%"; 
    // Starts the query 
    return new CursorLoader(
      getActivity(), 
      ContactsContract.Contacts.CONTENT_URI, 
      PROJECTION, 
      SELECTION, 
      mSelectionArgs, 
      null 
    ); 
} 

public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) { 
    // Put the result Cursor in the adapter for the ListView 
    mCursorAdapter.swapCursor(cursor); 
} 

@Override 
public void onLoaderReset(Loader<Cursor> loader) { 
    // Delete the reference to the existing Cursor 
    mCursorAdapter.swapCursor(null); 

} 


} 




                     --- 

Моя ошибка ------ начало аварии

11-05 00:39:21.040 2393-2393/com.example.nishant.textontym E/AndroidRuntime: FATAL EXCEPTION: main 
                      Process: com.example.nishant.textontym, PID: 2393 
                      java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.nishant.textontym/com.example.nishant.textontym.Msg_now}: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.nishant.textontym/com.example.nishant.textontym.ContactsFragment}; have you declared this activity in your AndroidManifest.xml? 
                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                       at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                       at android.os.Looper.loop(Looper.java:148) 
                       at android.app.ActivityThread.main(ActivityThread.java:5417) 
                       at java.lang.reflect.Method.invoke(Native Method) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                       Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.nishant.textontym/com.example.nishant.textontym.ContactsFragment}; have you declared this activity in your AndroidManifest.xml? 
                       at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1794) 
                       at android.app.Instrumentation.execStartActivity(Instrumentation.java:1512) 
                       at android.app.Activity.startActivityForResult(Activity.java:3917) 
                       at android.app.Activity.startActivityForResult(Activity.java:3877) 
                       at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:842) 
                       at android.app.Activity.startActivity(Activity.java:4200) 
                       at android.app.Activity.startActivity(Activity.java:4168) 
                       at com.example.nishant.textontym.Msg_now.onCreate(Msg_now.java:27) 
                       at android.app.Activity.performCreate(Activity.java:6237) 
                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
                       at android.app.ActivityThread.-wrap11(ActivityThread.java)  
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
                       at android.os.Handler.dispatchMessage(Handler.java:102)  
                       at android.os.Looper.loop(Looper.java:148)  
                       at android.app.ActivityThread.main(ActivityThread.java:5417)  
                       at java.lang.reflect.Method.invoke(Native Method)  
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
11-05 00:39:26.263 2393-2393/com.example.nishant.textontym I/Process: Sending signal. PID: 2393 SIG: 9 

AndroidManifest.xml

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

<uses-permission android:name="android.permission.READ_CONTACTS" /> 
<uses-permission android:name="android.permission.RECEIVE_SMS" /> 
<uses-permission android:name="android.permission.SEND_SMS" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

+4

'Caused by: android.content.ActivityNotFoundException: невозможно найти явный класс активности {com.example.nishant.textontym/com.example.nishant.textontym.ContactsFragment}; объявили ли вы эту активность в вашем AndroidManifest.xml? ' –

+2

Чтение сообщений об ошибках часто помогает! – Henry

+1

Вы назвали свой Java-класс 'ContactsFragment'. Но вы объявили '' –

ответ

0
Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.nishant.textontym/com.example.nishant.textontym.ContactsFragment}; have you declared this activity in your AndroidManifest.xml? 

Ваше призвание com.example.nishant.textontym.ContactsFragment деятельности, которая не была объявлена ​​в манифесте или если ContactsFragment является фрагмент, то вы должны добавить его к деятельности, вы не можете позвонить по умыслу.

+0

com.example.nishant.textontym.ContactsFragment - это фрагмент действия «contacts.java», и он упоминается в манифесте. Но здесь я называю «Msg_now.java» из «MainActivity.java». Но активность «Msg_now.java» даже не открыта. Спасибо –

+0

Показать нас msg_no.java класс – chiru

+0

Я обновил msg_now.class –

Смежные вопросы