我的一个应用程序中的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
我需要在我的应用中录制视频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) 在我的一个应用程序中,我需要在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