gpt4 book ai didi

java - 我的代码有什么问题? (执行代码时崩溃)

转载 作者:行者123 更新时间:2023-11-30 04:24:42 25 4
gpt4 key购买 nike

它没有错误,但是当我运行它时,它崩溃了。我认为问题出在我的代码部分如下:

    int h = (a * c);
List<Integer> factors = new ArrayList<Integer>();
for (int i = 1; i < Math.sqrt(h); i++) {
if (h % i == 0)
factors.add(i);
}
Integer result = null;
for (int ii : factors) {
if (b == ii + h / ii) {
result = ii;
// ax^2+hiix+iix+c
}
int hii = h / ii;
int gcd1 = Euclid.getGcd(a, hii);
int gcd2 = Euclid.getGcd(ii, c);
String factored1 = ("(" + gcd1 + "x+" + gcd2 + ")");
int fact21 = (a / gcd1);
int fact22 = (hii / gcd1);
String factored2 = ("(" + fact21 + "x+" + fact22 + ")");
EditText tvfact1a = (EditText) findViewById(R.id.tvfact1);
EditText tvfact2a = (EditText) findViewById(R.id.tvfact2);
tvfact1a.setText(factored1);
tvfact2a.setText(factored2);
}

a 和 c 在程序的早期进行了初始化。 Euclid类如下:

package boston.project;

public class Euclid {
public static int getGcd(int a, int b) {
while (b != 0) {
if (a > b) {
a -= b;
} else {
b -= a;
}
}
return a;
}
}

编辑

日志猫

01-01 15:28:59.479: W/KeyCharacterMap(303): id 0 没有键盘
01-01 15:28:59.479:W/KeyCharacterMap(303):使用默认键盘映射:/system/usr/keychars/qwerty.kcm.bin
01-01 16:22:03.158: W/KeyCharacterMap(334): id 0 没有键盘
01-01 16:22:03.158:W/KeyCharacterMap(334):使用默认键盘映射:/system/usr/keychars/qwerty.kcm.bin
01-01 16:22:16.739: D/AndroidRuntime(334): 关闭 VM
01-01 16:22:16.739: W/dalvikvm(334): threadid=1: 线程以未捕获的异常退出 (group=0x4001d800)
01-01 16:22:16.759: E/AndroidRuntime(334): 致命异常: main
01-01 16:22:16.759: E/AndroidRuntime(334): java.lang.ClassCastException: android.widget.TextView
01-01 16:22:16.759: E/AndroidRuntime(334): 在 boston.project.TheBostonProjectActivity$1.onClick(TheBostonProjectActivity.java:138)
01-01 16:22:16.759: E/AndroidRuntime(334): 在 android.view.View.performClick(View.java:2408)
01-01 16:22:16.759: E/AndroidRuntime(334): 在 android.view.View$PerformClick.run(View.java:8816)
01-01 16:22:16.759: E/AndroidRuntime(334): 在 android.os.Handler.handleCallback(Handler.java:587)
01-01 16:22:16.759: E/AndroidRuntime(334): 在 android.os.Handler.dispatchMessage(Handler.java:92)
01-01 16:22:16.759: E/AndroidRuntime(334): 在 android.os.Looper.loop(Looper.java:123)
01-01 16:22:16.759: E/AndroidRuntime(334): 在 android.app.ActivityThread.main(ActivityThread.java:4627)
01-01 16:22:16.759:E/AndroidRuntime(334):在 java.lang.reflect.Method.invokeNative(本地方法)
01-01 16:22:16.759: E/AndroidRuntime(334): 在 java.lang.reflect.Method.invoke(Method.java:521)
01-01 16:22:16.759: E/AndroidRuntime(334): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-01 16:22:16.759: E/AndroidRuntime(334): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-01 16:22:16.759: E/AndroidRuntime(334): 在 dalvik.system.NativeStart.main(Native Method)

最佳答案

我认为发生错误是因为您在布局中使用了 TextView 但尝试将其转换为代码中的 EditText。你应该改变

EditText tvfact1a = (EditText) findViewById(R.id.tvfact1);
EditText tvfact2a = (EditText) findViewById(R.id.tvfact2);

TextView tvfact1a = (TextView) findViewById(R.id.tvfact1);
TextView tvfact2a = (TextView) findViewById(R.id.tvfact2);

关于java - 我的代码有什么问题? (执行代码时崩溃),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8696034/

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