小编Muk*_*ana的帖子

在除Android L之外的所有Android版本上获取TypeNotPresentException,然后是ClassNotFoundException或NoClassDefFoundError

我的一个应用程序中的bug变得非常有趣.我的应用程序在Android L上工作正常,但是一旦我尝试在其他Android版本上运行它,我在尝试使用Retrofit调用Web服务时得到ClassNotFoundException或NoClassDefFoundError,即使所有这些类都存在且在我的工作正常android L设备.我不知道现在发生了什么,app正在其他版本中运行,只要我不进行网络请求,但是一旦我去网络请求,它就会给我ClassNotFoundException或NoClassDefFoundError.我也在使用Android Studio,所以如果有人早些时候遇到过这种问题,那么请帮忙,我非常需要.

注意:应用程序在Android L上工作正常,而且我得到ClassNotFoundException或NoClassDefFoundError的类不是特定于版本的,即它不像是在Android L左右支持它们.我得到这些错误的所有类都是一般的自定义/模型类,并且没有与更高版本的Android版本或其他东西的链接.

这些是我的Logcat错误

这是登录api时的例外

java.lang.TypeNotPresentException: Type com.codebrew.embazaar.pojo.UserLoginPojo not present
            at libcore.reflect.ParameterizedTypeImpl.getRawType(ParameterizedTypeImpl.java:63)
            at libcore.reflect.ParameterizedTypeImpl.getResolvedType(ParameterizedTypeImpl.java:72)
            at libcore.reflect.ListOfTypes.resolveTypes(ListOfTypes.java:70)
            at libcore.reflect.ListOfTypes.getResolvedTypes(ListOfTypes.java:55)
            at libcore.reflect.ParameterizedTypeImpl.getResolvedType(ParameterizedTypeImpl.java:71)
            at libcore.reflect.ListOfTypes.resolveTypes(ListOfTypes.java:70)
            at libcore.reflect.ListOfTypes.getResolvedTypes(ListOfTypes.java:55)
            at libcore.reflect.Types.getTypeArray(Types.java:50)
            at java.lang.reflect.Method.getGenericParameterTypes(Method.java:216)
            at retrofit.RestMethodInfo.parseResponseType(RestMethodInfo.java:250)
            at retrofit.RestMethodInfo.<init>(RestMethodInfo.java:97)
            at retrofit.RestAdapter.getMethodInfo(RestAdapter.java:213)
            at retrofit.RestAdapter$RestHandler.invoke(RestAdapter.java:236)
            at $Proxy0.userLogin(Native Method)
            at com.codebrew.embazaar.MainActivity.loginUser(MainActivity.java:529)
            at com.codebrew.embazaar.MainActivity.onClick(MainActivity.java:324)
            at android.view.View.performClick(View.java:4748)
            at android.view.View$PerformClick.run(View.java:19535)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:146)
            at android.app.ActivityThread.main(ActivityThread.java:5679)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.ClassNotFoundException: com.codebrew.embazaar.pojo.UserLoginPojo
            at java.lang.Class.classForName(Native Method) …
Run Code Online (Sandbox Code Playgroud)

android noclassdeffounderror classnotfoundexception retrofit android-5.0-lollipop

9
推荐指数
1
解决办法
2079
查看次数

具有持续时间限制和低质量的Android视频录制

我需要在我的应用中录制视频8秒.我正在使用MediaStore.ACTION_VIDEO_CAPTURE意图进行视频录制,并使用这些参数(MediaStore.EXTRA_VIDEO_QUALITY,MediaStore.EXTRA_DURATION_LIMIT)来设置视频录制的质量和持续时间限制.但我遇到了一个非常有趣的错误,即当我将持续时间限制设置为8秒,视频质量设置为1时,其工作正常并录制视频8秒但是一旦我将视频质量更改为0并保持一切相同,视频就是现在录制了21秒.我正在使用索尼Xperia手机进行测试,但是当我转向HTC时,持续时间限制在任何情况下都不起作用,既不将视频质量设置为1,也不设置为0.

所以我不知道现在发生了什么.急需.请帮忙.提前致谢.

这是我正在使用的代码..

private void recordVideo() {
    Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);

    File f = null;

    try {
        f = setUpVideoFile();
        filePath = f.getAbsolutePath();
        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
    } catch (IOException e) {
        e.printStackTrace();
        f = null;
        filePath = null;
    }
    objectGlobal.setFilepath(filePath);
    intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
    intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 8);
    startActivityForResult(intent, CAMERA_CAPTURE_VIDEO);
}
Run Code Online (Sandbox Code Playgroud)

android video-capture

8
推荐指数
1
解决办法
5950
查看次数

使用FragmentStatePagerAdapter在ViewPager的两侧动态添加片段

在我的一个应用程序中,我需要在ViewPager的两侧添加Fragments.首先,我将获得5个Feed的常量,我的ViewPager将在索引2处显示feed,即我当前显示的Fragment将包含索引2处的数据.因此,总体上我的ViewPager将在开始时显示5个Feed的中心,并且我只需将ViewPager当前Item设置为2即可实现

viewPager.setCurrentItem(2);
Run Code Online (Sandbox Code Playgroud)

现在用户可以滑动两边,当他从中心位置向左滑动时,我会查找下一个Feed,即从服务器获取并在我的ViewPager的零索引处添加Feed,就像这样

feedsList.add(0, modelClassObject); // feedsList will contain all feeds and has been used by adapter to show data in fragments.
adapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)

当我从中心位置向右滑动时,我会在最后添加Feed,就像这样

feedsList.add(modelClassObject);
adapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)

现在的问题是,如果我只在右侧添加Feed,即在feedsList的末尾,一切正常,但是当我在零索引处添加Feed时出现问题.我的适配器没有显示已添加到零位置的新Feed,而是重复现有Feed中的一个,而右侧但不是左侧.我已经尝试了一切,但没有什么是正确的.这是我的适配器代码.

private class HorizontalPagerAdapter extends FragmentStatePagerAdapter {

    public HorizontalPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int arg0) {
        return FeedUserProfileFragment.newInstance(feedsList.get(arg0),
                arg0);
    }

    @Override
    public int getCount() {
        return feedsList.size();
    }

}
Run Code Online (Sandbox Code Playgroud)

我也用过这个

@Override
    public int getItemPosition(Object object) {
        return POSITION_NONE;
    }
Run Code Online (Sandbox Code Playgroud)

但没有结果...... :(

所以在严重的需要中,如果有人早点这样做并遇到同样的问题,请让我知道我做错了什么.我只需要在我的ViewPager的零索引处添加片段.

android android-fragments android-viewpager fragmentstatepageradapter

6
推荐指数
1
解决办法
4610
查看次数