2016-11-05 1 views
-5

Meine App stürzt auf unerwartete Weise. Wenn ich die Hauptaktivität meiner App starte, wird sie ausgeführt. Aber wenn ich auf den Button mit der ID "R.id.msgnow" klicke, stürzt meine App ab. Ich habe alle vorher gegebenen Lösungen in stackoverflow ausprobiert, meine manifest.xml verifiziert und alles scheint richtig zu sein. Aber ich konnte immer noch nicht herausfinden, was der Grund für einen Absturz ist. Jeder Vorschlag wird wirklich helpful.ThanksAndroid Application stoppt leider

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 sein

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); 

} 


} 




                     --- 

Mein Fehler ------ Anfang Absturz

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

'verursacht durch: android.content.ActivityNotFoundException: Die explizite Aktivitätsklasse konnte nicht gefunden werden {com.example.nishant.textontym/com.example.nishant.textontym.ContactsFragment}; Hast du diese Aktivität in deiner AndroidManifest.xml deklariert? ' –

+2

Das Lesen von Fehlermeldungen hilft oft! – Henry

+1

Sie haben Ihre Java-Klasse 'ContactsFragment' benannt. Sie haben jedoch '' –

Antwort

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? 

Ihr Aufruf com.example.nishant.textontym.ContactsFragment Aktivität, die nicht im Manifest erklärt wurde oder wenn ContactsFragment ein Fragment ist dann Sie es zu einer Aktivität hinzufügen müssen, können Sie nicht über Absicht nennen.

+0

com.example.nishant.textontym.ContactsFragment ist ein Fragment der Aktivität "contacts.java" und es wird in Manifest erwähnt. Aber hier rufe ich "Msg_now.java" von "MainActivity.java". Aber "Msg_now.java" Aktivität öffnet sich nicht einmal. Danke –

+0

Zeigen Sie uns msg_no.java Klasse – chiru

+0

Ich habe die msg_now.class aktualisiert –