java - 我的应用程序在打开时崩溃,我认为这是由于 swisseph.jar
问题描述
我一直在开发一个应用程序,发现一个特定的代码不起作用,我创建了一个新项目来测试以找到原因,但是我注意到我的 android 应用程序在我启动时崩溃了,这里是代码
package my.testapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import swisseph.SweDate;
import swisseph.SwissEph;
import swisseph.SwissData;
import swisseph.SweConst;
public class MainActivity extends AppCompatActivity {
private TextView txtBox;
int Year, Month, Day, isun, imoon, iflag;
double Hour,Min,julDay;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Year = 2021;
Month = 02;
Day = 10;
Hour = 14;
Min = 30;
julDay = SweDate.getJulDay(Year,Month,Day,Hour);
isun = SweConst.SE_SUN;
imoon = SweConst.SE_MOON;
iflag = SweConst.SEFLG_SWIEPH;
double [] xx = new double[0];
StringBuffer serr = new StringBuffer();
SwissEph sw = new SwissEph();
int sunLon = sw.swe_calc_ut(julDay,isun,iflag,xx,serr);
int moonLon = sw.swe_calc_ut(julDay,imoon,iflag,xx,serr);
txtBox = this.findViewById(R.id.txtBox);
txtBox.setText(
"GDate" + Day + "/" + Month + "/" + Year +
"JDate" + julDay +
"Sun Long" + sunLon +
"Moon Long" + moonLon
);
}
}
我确实在依赖项下包含了 swisseph jar 文件,并且我已将 jar 文件放在 app 下的 libs 文件夹中。我对android java编程真的很陌生,如果这看起来很简单,我很抱歉。
解决方案
该错误是由于数组大小不正确引起的,因为数组不能为零,如下所示:
double [] xx = new double[0];
该数组应如下所示:
double [] xx = new double[6];
然后在中引用:
SwissEph sw = new SwissEph();
int sunLon = sw.swe_calc_ut(julDay,isun,iflag,xx[0],serr);
int moonLon = sw.swe_calc_ut(julDay,imoon,iflag,xx[0],serr);
推荐阅读
- r - 通过 R 中的 Huber 损失函数进行优化
- ios - 使用 SMTP (Swift) 发送选定的 URL
- javascript - 如何以编程方式更改链接
- xml - 使用 PowerShell 更新 XML 文件
- .net - ef core 5 调用在以下方法或属性之间有歧义
- javascript - 使用 Vue 3 观看选择数量选择器
- java - 通过 ExecutorService 提交 FileInputStream
- javascript - 带有 animate.css 类的幻灯片之间的 Splide.js 文本动画
- node.js - 开玩笑不执行快速中间件
- laravel - Laravel - 断言 Bugsnag 被警告