android 存储 ference,java - 我的应用程序正在我的虚拟设备上运行,但不在我的物理设备上运行 - SO中文参考 - www.soinside.com...

我对Android Studio来说还很陌生,我刚刚完成了我的第一个应用程序。然后,我想在我的手机上对其进行测试,但似乎无法正常工作。即使它在Android Studio中的虚拟设备上像超级按钮一样工作,它也甚至在启动之前就崩溃了。我将在此处发布一些信息,并希望有人能帮助我,因为我没有真正了解它。

Logcat输出:2020-06-06 05:01:12.188 12297-12297/? I/dlingsassisten: Late-enabling -Xcheck:jni

2020-06-06 05:01:12.218 12297-12297/? E/dlingsassisten: Unknown bits set in runtime_flags: 0x8000

2020-06-06 05:01:12.482 12297-12297/com.example.handlingsassistent I/Perf: Connecting to perf service.

2020-06-06 05:01:12.495 12297-12297/com.example.handlingsassistent I/dlingsassisten: [GL_OOM] ClampGrowthLimit 268435456

2020-06-06 05:01:12.499 12297-12297/com.example.handlingsassistent V/Font: Change font:1

2020-06-06 05:01:12.500 12297-12297/com.example.handlingsassistent V/Font: Default family:android.graphics.Typeface@3668eb82

2020-06-06 05:01:12.507 12297-12332/com.example.handlingsassistent E/Perf: Fail to get file list com.example.handlingsassistent

2020-06-06 05:01:12.507 12297-12332/com.example.handlingsassistent E/Perf: getFolderSize() : Exception_1 = java.lang.NullPointerException: Attempt to get length of null array

2020-06-06 05:01:12.507 12297-12332/com.example.handlingsassistent E/Perf: Fail to get file list com.example.handlingsassistent

2020-06-06 05:01:12.507 12297-12332/com.example.handlingsassistent E/Perf: getFolderSize() : Exception_1 = java.lang.NullPointerException: Attempt to get length of null array

2020-06-06 05:01:12.690 12297-12297/com.example.handlingsassistent W/dlingsassisten: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed)

2020-06-06 05:01:12.692 12297-12297/com.example.handlingsassistent W/dlingsassisten: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed)

2020-06-06 05:01:12.864 12297-12297/com.example.handlingsassistent D/AndroidRuntime: Shutting down VM

2020-06-06 05:01:12.868 12297-12297/com.example.handlingsassistent E/AndroidRuntime: FATAL EXCEPTION: main

Process: com.example.handlingsassistent, PID: 12297

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.handlingsassistent/com.example.handlingsassistent.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference

at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3387)

at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3526)

at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)

at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)

at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)

at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2122)

at android.os.Handler.dispatchMessage(Handler.java:107)

at android.os.Looper.loop(Looper.java:214)

at android.app.ActivityThread.main(ActivityThread.java:7695)

at java.lang.reflect.Method.invoke(Native Method)

at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)

Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference

at android.widget.ArrayAdapter.getCount(ArrayAdapter.java:392)

at android.widget.ListView.setAdapter(ListView.java:585)

at com.example.handlingsassistent.MainActivity.onCreate(MainActivity.java:42)

at android.app.Activity.performCreate(Activity.java:7820)

at android.app.Activity.performCreate(Activity.java:7809)

at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1318)

at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3362)

at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3526)

at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)

at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)

at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)

at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2122)

at android.os.Handler.dispatchMessage(Handler.java:107)

at android.os.Looper.loop(Looper.java:214)

at android.app.ActivityThread.main(ActivityThread.java:7695)

at java.lang.reflect.Method.invoke(Native Method)

at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)

2020-06-06 05:01:12.910 12297-12297/com.example.handlingsassistent I/Process: Sending signal. PID: 12297 SIG: 9

主要活动package com.example.handlingsassistent;

import androidx.appcompat.app.AlertDialog;

import androidx.appcompat.app.AppCompatActivity;

import android.content.DialogInterface;

import android.content.Intent;

import android.content.SharedPreferences;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.TextView;

import com.google.gson.Gson;

import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;

import java.util.ArrayList;

import java.util.List;

public class MainActivity extends AppCompatActivity {

List arrList = new ArrayList();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

loadData();

ListView shoppingListView = findViewById(R.id.shoppingListView);

final ArrayAdapter adapter = new ArrayAdapter(

this,

R.layout.list_layout,

arrList);

shoppingListView.setAdapter(adapter);

//Möjliggör att kunna välja flera alternativ i listan.

shoppingListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

shoppingListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

@Override

public boolean onItemLongClick(AdapterView> parent, View view, int position, long id) {

arrList.remove(position);

adapter.notifyDataSetChanged();

saveData();

return true;

}

});

}

public void addToList (View v){

if( ((TextView) findViewById(R.id.inputText)).getText().toString().isEmpty()) {

Log.d("Empty", "Input is empty");

}

else {

arrList.add(((TextView) findViewById(R.id.inputText)).getText().toString());

((ListView) findViewById(R.id.shoppingListView)).invalidateViews();

((TextView) findViewById(R.id.inputText)).setText("");

saveData();

}

}

// Referens: https://developer.android.com/guide/topics/ui/dialogs.html

public void clearList (View v){

AlertDialog.Builder alert = new AlertDialog.Builder(this);

alert.setTitle(R.string.alert_title);

alert.setMessage(R.string.alert_message);

alert.setPositiveButton(R.string.alert_yes, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

arrList.clear();

((ListView) findViewById(R.id.shoppingListView)).invalidateViews();

saveData();

}

});

alert.setNegativeButton(R.string.alert_no, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

}

});

alert.create().show();

}

// Referens: https://www.youtube.com/watch?v=jcliHGR3CHo

private void saveData(){

SharedPreferences sharedPreferences = getSharedPreferences("shared preferences", MODE_PRIVATE);

SharedPreferences.Editor editor = sharedPreferences.edit();

Gson gson = new Gson();

String json = gson.toJson(arrList);

editor.putString("task list", json);

editor.apply();

}

// Referens: https://www.youtube.com/watch?v=jcliHGR3CHo

private void loadData(){

SharedPreferences sharedPreferences = getSharedPreferences("shared preferences", MODE_PRIVATE);

Gson gson = new Gson();

String json = sharedPreferences.getString("task list", null);

Type type = new TypeToken>() {}.getType();

arrList = gson.fromJson(json, type);

}

public void loadTemplateActivity(View v){

Intent intent = new Intent(this, TemplateActivity.class);

startActivity(intent);

}

public void loadSpendingActivity(View v){

Intent intent = new Intent(this, SpendingActivity.class);

startActivity(intent);

}

}```

Hope this information is enough. I'll keep an eye out if you request something else to help me out.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值