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>
'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? ' –
Das Lesen von Fehlermeldungen hilft oft! – Henry
Sie haben Ihre Java-Klasse 'ContactsFragment' benannt. Sie haben jedoch ' ' –