我目前有4个不同的按钮。其中3个导致相同的活动,但使用不同的数据填充ArrayList。不同数据集之间的唯一区别是大小。
每次我使用工作按钮selectCountryAndStateButton
时一切正常。但是当我使用getAllFacilitiesButton
时,应用程序返回到上一个活动,我在LogCat中得到以下内容
02-08 11:56:26.649 22325-22325/? W/System: ClassLoader referenced unknown path: /data/app/com.company.app-1/lib/x86
02-08 11:56:26.668 22325-22325/? I/GMPM: App measurement is starting up, version: 8487
02-08 11:56:26.668 22325-22325/? I/GMPM: To enable debug logging run: adb shell setprop log.tag.GMPM VERBOSE
02-08 11:56:26.791 22325-22336/com.company.app I/art: Background partial concurrent mark sweep GC freed 418(17KB) AllocSpace objects, 0(0B) LOS objects, 40% free, 4MB/7MB, paused 9.593ms total 21.620ms
02-08 11:56:27.097 22325-22359/com.company.app D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
02-08 11:56:27.177 22325-22359/com.company.app I/OpenGLRenderer: Initialized EGL, version 1.4
02-08 11:56:27.187 22325-22359/com.company.app W/EGL_emulation: eglSurfaceAttrib not implemented
02-08 11:56:27.187 22325-22359/com.company.app W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xad7e0960, error=EGL_SUCCESS
在发生错误之前,我收到了以下内容。
02-08 11:38:41.064 14907-14907/? E/GMPM: GoogleService failed to initialize, status: 10, Missing an expected resource: 'R.string.google_app_id' for initializing Google services. Possible causes are missing google-services.json or com.google.gms.google-services gradle plugin.
但是我通过将google_app_id.xml
添加到我的资源来更正了错误。
当相同的确切代码与一组小得多的数据一起工作时,为什么会出现类加载器未知引用问题?
编辑:2016年2月8日下午1:25 [中央]
发现我的邮件已被过滤。我收到以下错误:
E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 526172)
这意味着我的644个对象列表太大而无法传递给下一个活动。将用解决方案回答
-----以下是我的代码-----
工作按钮(facilities.size()< 100)
selectCountryAndStateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ServiceConnector sc = getServiceConnector();
sc.execute(APICallEnum.SEARCH_BY_COUNTRY, countrySelected, stateSelected);
try {
String data = sc.get();
List<Facility> facilities = JSONParser.getFromJson(data);
//Open list activity of facilities
openListActivity(facilities);
} catch (ExecutionException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
按钮不起作用(facilities.size()= 644)
getAllFacilitiesButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("Search", "get all");
ServiceConnector sc = getServiceConnector();
sc.execute(APICallEnum.GET_ALL_FACILITIES);
try {
String data = sc.get();
List<Facility> facilities = JSONParser.getFromJson(data);
openListActivity(facilities);
} catch (ExecutionException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
打开下一个活动代码
private void openListActivity(List<Factility> f) {
Intent intent = new Intent(FindLocation.this, ListingActivity.class);
intent.putExtra("facilities", new FacilityList(f));
startActivity(intent);
}
答案 0 :(得分:1)
问题是由于尝试通过意图传递大量设施而引起的。
我通过执行在新活动中检索数据的get来解决这个问题,而是传递get所需的信息。