当前位置: 首页 > 知识库问答 >
问题:

应用程序在Android Kitkat上不工作

怀浩大
2023-03-14

我正在创建自己的应用程序。我在AndroidLollipop和Marshmallow上测试了它-一切都很好。但每当我尝试Android Kitkat时,就会发生错误。以下是错误日志:

E/AndroidRuntime: FATAL EXCEPTION: main
                                                                  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.newproject/com.example.newproject.Progi}: java.lang.ClassCastException: java.lang.Object[] cannot be cast to java.math.BigDecimal[][]
                                                                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
                                                                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
                                                                      at android.app.ActivityThread.access$600(ActivityThread.java:130)
                                                                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
                                                                      at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                      at android.os.Looper.loop(Looper.java:137)
                                                                      at android.app.ActivityThread.main(ActivityThread.java:4745)
                                                                      at java.lang.reflect.Method.invokeNative(Native Method)
                                                                      at java.lang.reflect.Method.invoke(Method.java:511)
                                                                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
                                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
                                                                      at dalvik.system.NativeStart.main(Native Method)
                                                                   Caused by: java.lang.ClassCastException: java.lang.Object[] cannot be cast to java.math.BigDecimal[][]
                                                                      at com.example.newproject.Progi.onCreate(Progi.java:62)
                                                                      at android.app.Activity.performCreate(Activity.java:5008)
                                                                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
                                                                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
                                                                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
                                                                      at android.app.ActivityThread.access$600(ActivityThread.java:130) 
                                                                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
                                                                      at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                                      at android.os.Looper.loop(Looper.java:137) 
                                                                      at android.app.ActivityThread.main(ActivityThread.java:4745) 
                                                                      at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                      at java.lang.reflect.Method.invoke(Method.java:511) 
                                                                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
                                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
                                                                      at dalvik.system.NativeStart.main(Native Method) 

看起来问题出在“progi”类的第62行,但是——对我来说——一切都很好,尤其是在新的Android版本上运行得很好。

public class Progi extends AppCompatActivity {
Intent intent;
Bundle liczby;
Bundle doble;
BigDecimal tablica [][];
BigDecimal punkty = new BigDecimal(-1);

@Override
public boolean onPrepareOptionsMenu(Menu menu)
{
    android.content.SharedPreferences shared = android.preference.PreferenceManager.getDefaultSharedPreferences(this);
    boolean warunek = shared.getBoolean("serial", false);
    android.view.MenuItem menuitem = menu.getItem(0);
    if(warunek)
    {
        menuitem.setTitle("Oceny pojedynczo");
    }
    else menuitem.setTitle("Oceny seryjnie");
    return true;
}


public boolean onCreateOptionsMenu(Menu menu) {
    android.view.MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.firstmenu, menu);
    return true;
}

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.layoutprogi);
    Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
    setSupportActionBar(myToolbar);
    getSupportActionBar().setTitle("Progi punktowe");
    intent = getIntent();
    liczby = intent.getBundleExtra("liczby");
    doble = intent.getBundleExtra("doble");
    tablica = (BigDecimal[][]) doble.getSerializable("doble"); //here is line 62 
    if(intent.hasExtra("max")) {
        Bundle a = intent.getBundleExtra("max");
        punkty = (BigDecimal) a.getSerializable("max");
    }
    przejscie(true);

    if(punkty.compareTo(new BigDecimal(-3))==0)
    {
        procenty(findViewById(android.R.id.content));
    }
    else if(punkty.compareTo(new BigDecimal(-1))!=0)
{
    liczymy(findViewById(android.R.id.content));
}}

如果有人问“Tabilica从意图中得到了什么?”

BigDecimal[][] tablica = new BigDecimal[16][3];
//here i get data from file and put in inside "tablica"
Bundle doble = new Bundle();
doble.putSerializable("doble", tablica);
Intent intent = new Intent(Starter.this, MyActivity.class);
intent.putExtra("doble", doble);
startActivity(intent);

任何想法是什么问题?

共有1个答案

郦祯
2023-03-14

尝试将您的数组实现< code>(BigDecimal[] [])切换到< code>ArrayList。

如果你想在Android 5.0.1之前的Android版本上通过一个intent来传递一个数组(也许一些老版本也可以,但是在Android 4.3之前就不行了),你必须解决这个问题。您可以通过将数组转换为数组列表来实现这一点。

然后你会像这样铸造它:

(ArrayList<ArrayList<BigDecimal>>) doble.getSerializable("doble");

相关SO答案

 类似资料:
  • Ionic 4/3应用程序在Android Kitkat 4.4和lolipop 5.1上显示白色屏幕。我的应用程序不适用于kitkat和lolipop。我已经安装了另一个Android版本,但工作正常。这是我的配置文件: 插件: cordova插件徽章0.8.8“badge” cordova插件设备2.0.2“设备” cordova plugin ionic键盘2.1.3“cordova plu

  • 我创建了一个工作正常的Spring启动应用程序,但我无法获得与该应用程序捆绑在一起的Rest服务。请找到下面的代码。我能够访问urlhttp://localhost:8080/springbootr/但无法访问web服务urlhttp://localhost:8080/springbootr/Hello/,在web服务调用时得到404。 pom。xml: 我是这个应用程序的新手,请帮助我。

  • 我在WebSphere控制台上部署了WAR文件,并将其映射到数据源。我能够测试我用PostgreSQL服务器详细信息配置的数据源。但是我的应用程序没有连接到服务器。我是新来的WebSphere,谁能帮我配置基于下面context.xml文件的数据源。我的应用程序在tomcat中工作得很好,但在WebSphere中却不行。 我认为我在数据源配置中做错了什么。

  • 所以我试图从Heroku上部署的spring应用程序发送一封电子邮件。在本地运行时,电子邮件发送得非常好,但在heroku上,我得到了这个错误: MessagingException:无法将套接字转换为TLS;2021-04-30T14:46:49.318141+00:00 app[web.1]:嵌套异常为:2021-04-30T14:46:49.318145+00:00 app[web.1]:j

  • 我一直在尝试运行我的客户端/服务器android程序。但是每当我在android上运行客户端部分时,它都会出错不幸的是,您的应用程序已停止运行。我尝试过阅读logcat,但无法解决问题。下面是我的代码...我从3天开始一直在尝试。需要项目帮助 logcat公司 activity\u new\u main\u活动。xml manifest.xml 新建_main_活动。Java语言

  • 希望我们能尽快解决这个问题: 我的reactjs项目在构建和部署后,正在chrome和firefox上工作--在windows和Android上。然而,在IE、Edge和Safari(在IOS上也是chrome)上,我会得到一个带有以下错误的空白页: 对于IE: