gpt4 book ai didi

java - 不确定如何理解 logcat 告诉我的错误

转载 作者:行者123 更新时间:2023-11-29 08:08:59 24 4
gpt4 key购买 nike

这是我的 logcat 给我的错误。我知道它与我的 editText 有关,但我不确定是什么。我希望这是一个可以快速轻松地修复的愚蠢错误,以便我可以尽快继续工作。如果你可以 Stackoverflow,请帮助我谢谢!

该错误仅在程序运行时出现

02-25 16:30:19.417: E/AndroidRuntime(15259): FATAL EXCEPTION: main
02-25 16:30:19.417: E/AndroidRuntime(15259): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.Wicker/com.Wicker.InviteSMS}: java.lang.ClassCastException: android.widget.EditText
02-25 16:30:19.417: E/AndroidRuntime(15259): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1816)
02-25 16:30:19.417: E/AndroidRuntime(15259): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1837)
02-25 16:30:19.417: E/AndroidRuntime(15259): at android.app.ActivityThread.access$1500(ActivityThread.java:132)
02-25 16:30:19.417: E/AndroidRuntime(15259): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1033)
02-25 16:30:19.417: E/AndroidRuntime(15259): at android.os.Handler.dispatchMessage(Handler.java:99)
02-25 16:30:19.417: E/AndroidRuntime(15259): at android.os.Looper.loop(Looper.java:143)
02-25 16:30:19.417: E/AndroidRuntime(15259): at android.app.ActivityThread.main(ActivityThread.java:4196)
02-25 16:30:19.417: E/AndroidRuntime(15259): at java.lang.reflect.Method.invokeNative(Native Method)
02-25 16:30:19.417: E/AndroidRuntime(15259): at java.lang.reflect.Method.invoke(Method.java:507)
02-25 16:30:19.417: E/AndroidRuntime(15259): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-25 16:30:19.417: E/AndroidRuntime(15259): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-25 16:30:19.417: E/AndroidRuntime(15259): at dalvik.system.NativeStart.main(Native Method)
02-25 16:30:19.417: E/AndroidRuntime(15259): Caused by: java.lang.ClassCastException: android.widget.EditText
02-25 16:30:19.417: E/AndroidRuntime(15259): at com.Wicker.InviteSMS.onCreate(InviteSMS.java:48)
02-25 16:30:19.417: E/AndroidRuntime(15259): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
02-25 16:30:19.417: E/AndroidRuntime(15259): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1780)
02-25 16:30:19.417: E/AndroidRuntime(15259): ... 11 more

这是我的 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >

<TextView
android:id="@+id/contacts"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:gravity="center"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:text="@string/contacts"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#fff" /> <!-- android:background="@drawable/header" for header background -->

<Button
android:id="@+id/contactsButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="@string/contacts" />
</RelativeLayout>

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/enter_contact"
android:textAppearance="?android:attr/textAppearanceMedium" />

<AutoCompleteTextView
android:id="@+id/contactnumber"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/to" >

<requestFocus />
</AutoCompleteTextView>

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/message_to_send"
android:textAppearance="?android:attr/textAppearanceMedium" />

<EditText
android:id="@+id/invite_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/message_join" />

<Button
android:id="@+id/sendtxt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="doLaunchContactPicker"
android:text="@string/send_txt" />
</LinearLayout>

</ScrollView>

这是运行它的类。

public class InviteSMS extends Activity {

private static final int CONTACT_PICKER_RESULT = 1001;
private static final String DEBUG_TAG = null;

private SimpleAdapter mAdapter;

Button btnSendSMS;
AutoCompleteTextView txtPhoneNo;
Button Attachment;
Button contactsbutton;
Button gallery;
EditText txtMessage;

Context context = this;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.invite_text);

btnSendSMS = (Button) findViewById(R.id.sendtxt);
txtPhoneNo = (AutoCompleteTextView) findViewById(R.id.contactnumber);
txtMessage = (EditText) findViewById(R.id.invite_text);
contactsbutton = (Button) findViewById(R.id.contactsButton);

txtPhoneNo.setAdapter(mAdapter);

btnSendSMS.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String phoneNo = txtPhoneNo.getText().toString();
String message = txtMessage.getText().toString();

if (phoneNo.length() > 0 && message.length() > 0)
sendSMS(phoneNo, message);
else
Toast.makeText(getBaseContext(),
"Please enter both phone number and message.",
Toast.LENGTH_SHORT).show();
}

});
contactsbutton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {

Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,
Contacts.CONTENT_URI);
startActivityForResult(contactPickerIntent,
CONTACT_PICKER_RESULT);

}
});
}

private void sendSMS(String phoneNumber, String message) {
PendingIntent pi = PendingIntent.getActivity(this, 0, new Intent(this,
InviteSMS.class), 0);

String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED";

PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent(
SENT), 0);

PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
new Intent(DELIVERED), 0);
registerReceiver(new BroadcastReceiver() {

@Override
public void onReceive(Context arg0, Intent arg1) {
switch (getResultCode()) {
case Activity.RESULT_OK:
Toast.makeText(getBaseContext(), "SMS sent",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
Toast.makeText(getBaseContext(), "Generic failure",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
Toast.makeText(getBaseContext(), "No service",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
Toast.makeText(getBaseContext(), "Null PDU",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
Toast.makeText(getBaseContext(), "Radio off",
Toast.LENGTH_SHORT).show();
break;
}
}
}, new IntentFilter(SENT));

// ---when the SMS has been delivered---
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent arg1) {
switch (getResultCode()) {
case Activity.RESULT_OK:
Toast.makeText(getBaseContext(), "SMS delivered",
Toast.LENGTH_SHORT).show();
break;
case Activity.RESULT_CANCELED:
Toast.makeText(getBaseContext(), "SMS not delivered",
Toast.LENGTH_SHORT).show();
break;
}
}
}, new IntentFilter(DELIVERED));

SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case CONTACT_PICKER_RESULT:
Cursor cursor = null;
String phone = "";
try {
Bundle extras = data.getExtras();
Set<String> keys = extras.keySet();
Iterator<String> iterate = keys.iterator();
while (iterate.hasNext()) {
String key = iterate.next();
Log.v(DEBUG_TAG, key + "[" + extras.get(key) + "]");
}

Uri result = data.getData();
Log.v(DEBUG_TAG,
"Got a contact result: " + result.toString());

// get the contact id from the Uri
String id = result.getLastPathSegment();

cursor = getContentResolver().query(Phone.CONTENT_URI,
null, Phone.CONTACT_ID + "=?", new String[] { id },
null);

int phoneIdx = cursor.getColumnIndex(Phone.DATA);

if (cursor.moveToFirst()) {

phone = cursor.getString(phoneIdx);

Log.v(DEBUG_TAG, "Got Contact: " + phone);

} else {
Log.w(DEBUG_TAG, "No results");
}
} catch (Exception e) {
Log.e(DEBUG_TAG, "Failed to get phone data", e);
} finally {
if (cursor != null) {
cursor.close();
}
EditText phoneEntry = (EditText) findViewById(R.id.invite_text);
phoneEntry.setText(phone);
if (phone.length() == 0) {
Toast.makeText(this,
"No Phone Number found for contact.",
Toast.LENGTH_LONG).show();
}

}

break;
}

} else {
Log.w(DEBUG_TAG, "Warning: activity result not ok");
}
}

}

最佳答案

你在这一行得到一个 ClassCastException:

txtMessage = (EditText) findViewById(R.id.invite_text);

这意味着 ID 为 R.id.invite_textView 对象不是 EditText。然而,这不是真的,因为 invite_text 确实是 EditText 类型。

    <EditText
android:id="@+id/invite_text"
android:layout_width="fill_parent"
...
" />

所以我认为你的资源文件不是最新的。代码看起来没问题。删除您的 gen 文件夹并再次运行它。当您删除 gen 文件夹时,应该重新创建您的资源文件。

关于java - 不确定如何理解 logcat 告诉我的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9448444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com