改进2 java空指针对象引用
嗨,我正在尝试使用改型解析JSON,将其保存在Sqlite上并显示在RecyclerView上。但是,当我尝试打开活动时,我的应用程序崩溃。 下面是我的相关活动的完整代码。你能帮我解决这个问题吗? 多谢各位改进2 java空指针对象引用,java,android,nullpointerexception,retrofit2,Java,Android,Nullpointerexception,Retrofit2,嗨,我正在尝试使用改型解析JSON,将其保存在Sqlite上并显示在RecyclerView上。但是,当我尝试打开活动时,我的应用程序崩溃。 下面是我的相关活动的完整代码。你能帮我解决这个问题吗? 多谢各位 public class InventoryProductActivity extends AppCompatActivity implements InventoryProductListAdapter.CustomClickListener { private static f
public class InventoryProductActivity extends AppCompatActivity implements InventoryProductListAdapter.CustomClickListener {
private static final String TAG = InventoryProductActivity.class.getSimpleName();
private InventoryProductListAdapter mInventoryProductListAdapter;
private RecyclerView mRecyclerView;
private RetrofitClient mRetrofitClient;
LinearLayoutManager mLinearLayoutManager;
private WarehouseDatabase mDatabase;
private ProgressDialog mProgressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inventory_product);
configViews();
mRetrofitClient = new RetrofitClient();
mDatabase = new WarehouseDatabase(this);
loadInventoryProductFeed();
}
private void configViews() {
mRecyclerView = findViewById(R.id.recycler_view_inventory_product);
mRecyclerView.setHasFixedSize(true);
mLinearLayoutManager = new LinearLayoutManager(this);
mRecyclerView.setLayoutManager(mLinearLayoutManager);
mInventoryProductListAdapter = new InventoryProductListAdapter(this);
mRecyclerView.setAdapter(mInventoryProductListAdapter);
}
private void loadInventoryProductFeed() {
mProgressDialog = new ProgressDialog(InventoryProductActivity.this);
mProgressDialog.setMessage("Loading Inventory Data...");
mProgressDialog.setCancelable(true);
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
mProgressDialog.setIndeterminate(true);
mProgressDialog.show();
mInventoryProductListAdapter.reset();
if (getNetworkAvailability()) {
getFeed();
} else {
getFeedFromDatabase();
}
}
private void getFeed() {
Call<List<InventoryProductModel>> listCall = mRetrofitClient.getWarehouseServiceInventoryProduct().getAllInventoryProducts();
listCall.enqueue(new Callback<List<InventoryProductModel>>() {
@Override
public void onResponse(Call<List<InventoryProductModel>> call, Response<List<InventoryProductModel>> response) {
if (response.isSuccessful()) {
List<InventoryProductModel> inventoryProductModelList = response.body();
for (int i = 0; i < inventoryProductModelList.size(); i++) {
InventoryProductModel inventoryProductModel = inventoryProductModelList.get(i);
mInventoryProductListAdapter.notifyDataSetChanged();
}
} else {
int sc = response.code();
switch (sc) {
}
}
mProgressDialog.dismiss();
}
@Override
public void onFailure(Call<List<InventoryProductModel>> call, Throwable t) {
mProgressDialog.dismiss();
Toast.makeText(getApplicationContext(), t.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
private void getFeedFromDatabase() {
List<InventoryProductModel> inventoryProductModelList = mDatabase.getInventoryProducts();
for (int i = 0; i < inventoryProductModelList.size(); i++) {
InventoryProductModel inventoryProductModel = inventoryProductModelList.get(i);
Log.d(TAG, inventoryProductModel.getName() + "||" + inventoryProductModel.getCountryId());
}
mProgressDialog.dismiss();
}
private boolean getNetworkAvailability() {
return Utils.isNetworkAvailable(getApplicationContext());
}
@Override
public void onClick(int position) {
}
}
E/WindowManager:android.view.WindowManager:Activity
codes.bala.bmsfinal1.activity.MainActivity已泄漏窗口
DecorView@52c3fcd[]最初添加到此处的
在android.view.ViewRootImpl.ViewRootImpl.java:418
在android.view.WindowManagerGlobal.addViewWindowManagerGlobal.java:331
在android.view.WindowManagerImpl.addViewWindowManagerImpl.java:93
在android.app.Dialog.showDialog.java:322
在android.app.ProgressDialog.showProgressDialog.java:116
在android.app.ProgressDialog.showProgressDialog.java:104
位于codes.bala.bmsfinal1.activity.MainActivity.LoginMainInactivity.java:61
位于codes.bala.bmsfinal1.activity.MainActivity$1.onClickMainActivity.java:41
在android.view.view.performClickView.java:5637
在android.view.view$PerformClick.runView.java:22429
位于android.os.Handler.handleCallbackHandler.java:751
在android.os.Handler.dispatchMessageHandler.java:95
在android.os.Looper.Looper.java:154
在android.app.ActivityThread.mainActivityThread.java:6119
在java.lang.reflect.Method.Invokenactive方法中
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.runZygoteInit.java:886
位于com.android.internal.os.ZygoteInit.mainZygoteInit.java:776
I/ViewConfigCompat:在上找不到方法getScaledScrollFactor
ViewConfiguration D/AndroidRuntime:关闭虚拟机
-----崩溃开始E/AndroidRuntime:致命异常:主
工艺:codes.bala.bmsfinal1,PID:12077
java.lang.RuntimeException:无法启动活动组件信息{code.bala.bmsfinal1/code.bala.bmsfinal1.activity.InventoryProductActivity}:
java.lang.NullPointerException:尝试调用接口方法
“2.打电话
代码.bala.bmsfinal1.iinterface.WarehouseService.getAllInventoryProducts'
关于空对象引用
在android.app.ActivityThread.performLaunchActivityActivityThread.java:2665
在android.app.ActivityThread.handleLaunchActivityActivityRead.java:2726
在android.app.ActivityThread上。-wrap12ActivityThread.java
在android.app.ActivityThread$H.handleMessageActivityThread.java:1477
位于android.os.Handler.dispatchMessageHandler.java:102
在android.os.Looper.Looper.java:154
在android.app.ActivityThread.mainActivityThread.java:6119
在java.lang.reflect.Method.Invokenactive方法中
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.runZygoteInit.java:886
位于com.android.internal.os.ZygoteInit.mainZygoteInit.java:776
原因:java.lang.NullPointerException:尝试调用接口
方法“2.Call”
代码.bala.bmsfinal1.iinterface.WarehouseService.getAllInventoryProducts'
关于空对象引用
位于codes.bala.bmsfinal1.activity.InventoryProductActivity.getFeedInventoryProductActivity.java:88
位于codes.bala.bmsfinal1.activity.InventoryProductActivity.loadInventoryProductFeedInventoryProductActivity.java:70
位于codes.bala.bmsfinal1.activity.InventoryProductActivity.onCreateInventoryProductActivity.java:46
在android.app.Activity.performCreateActivity.java:6679
在android.app.Instrumentation.callActivityOnCreateInstrumentation.java:1118
在android.app.ActivityThread.PerformLaunchActivityActivityRead.java:2618
在android.app.ActivityThread.handleLaunchActivityActivityRead.java:2726
在android.app.ActivityThread.-wrap12ActivityThread.java
在android.app.ActivityThread$H.handleMessageActivityThread.java:1477
位于android.os.Handler.dispatchMessageHandler.java:102
在android.os.Looper.Looper.java:154
在android.app.ActivityThread.mainActivityThread.java:6119
在java.lang.reflect.Method.Invokenactive方法中
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.runZygoteInit.java:886
位于com.android.internal.os.ZygoteInit.mainZygoteInit.java
:776
申请终止
方法返回null。
您应该在此方法内设置断点,并检查发生的情况或向此方法添加一些日志。Hello。谢谢你的回复。基本url中似乎输入错误。它告诉我链接必须以/结尾。
getWarehouseServiceInventoryProduct()