Dis*_*Dev 6 java android noclassdeffounderror android-gradle-plugin
我们的一位测试人员使用运行Android 4.4.4的T-mobile Galaxy S4遇到了非常奇怪的NoClassDefFoundError崩溃.我完全不知道为什么会发生这些事情.
最新的一个是onCreateView在片段中调用静态方法时发生的.
MyCustomClass.getNumberOfItems(getActivity());
Run Code Online (Sandbox Code Playgroud)
失败了
致命异常:java.lang.NoClassDefFoundError com.mycompany.myapp.utilities.MyCustomClass $ 5
这是有问题的方法:
public static List<Item> getNumberOfItems(final Context context)
{
List<Item> allFinishedItems = getAllFinishedItems(context);
CollectionUtils.filter(allFinishedItems, new Predicate<Item>()
{
@Override
public boolean evaluate(Item item)
{
// TODO Auto-generated method stub
return isNonCustomItem(context, item);
}
});
return allFinishedItems;
}
Run Code Online (Sandbox Code Playgroud)
1.)课程名称后面的"5美元"是什么?(回答:使用CollectionUtils.filter过滤匿名类的引用)2.)这个用户有另一个类似性质的崩溃,但是在一个通过gradle包含的库中有一个完全不同的静态方法调用.我在这个问题中引用的崩溃来自代码,它是我自己的库项目的一部分,同样的静态方法调用在应用程序的其他地方工作.这个问题似乎正在蔓延,或者至少不包含在1个类或1个库中.
我们的目标是build.gradle中的以下Android版本:
minSdkVersion 14
targetSdkVersion 22 (android 5.1)
Run Code Online (Sandbox Code Playgroud)
这可能会发生什么?另外需要注意的是,已签名的APK是使用Android Studio 2.0预览版4生成的.但是,该应用程序适用于20-30个其他beta测试人员,所以我对使用预览版Studio进行指责犹豫不决.
在NoClassDefFoundError小号中发生,因为multidex在这个程序只是部分实现-由于某种原因,这适用于Android 5/6正常,但在Android 4.x的它使你的应用程序崩溃与NoClassDefFoundError在随机的地方.在我看来,Android Studio应该检测到这种情况,并且应该警告您已经不正确地实现了multidex支持.
要解决此问题,请确保您的项目符合以下条件:
multiDexEnabled = true在defaultConfig您的应用级build.gradle部分
compile 'com.android.support:multidex:1.0.0' 在您的项目级build.gradle中
呼叫MultiDex.install()在attachBaseContext()您的应用程序类的.
有关multidex的更多详细信息,请访问此处.
| 归档时间: |
|
| 查看次数: |
2408 次 |
| 最近记录: |