进入下一个活动时,ClassLoader引用了未知路径

时间:2016-02-08 18:00:55

标签: java android classloader

我目前有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);
}

1 个答案:

答案 0 :(得分:1)

问题是由于尝试通过意图传递大量设施而引起的。

我通过执行在新活动中检索数据的get来解决这个问题,而是传递get所需的信息。