Android 工程混淆后报出如下错误:
10-19
13:26:19.750: E/AndroidRuntime(13654): Caused by:
android.view.InflateException: Binary XML file line #193: Error inflating
… …
E/AndroidRuntime(13480):
Caused by: java.lang.ClassNotFoundException: com.neusof
t.neuapp.ui.AppPicsGallery
in loader dalvik.system.PathClassLoader[/data/app/com
.neusoft.neuapp.ui-1.apk]
E/AndroidRuntime(13480): at
dalvik.system.PathClassLoader.findClass(PathC
lassLoader.java:240)
E/AndroidRuntime(13480): at
java.lang.ClassLoader.loadClass(ClassLoader.j
ava:551)
E/AndroidRuntime(13480): at
java.lang.ClassLoader.loadClass(ClassLoader.j
ava:511)
E/AndroidRuntime(13480): at
android.view.LayoutInflater.createView(Layout
Inflater.java:471)
E/AndroidRuntime(13480): at
android.view.LayoutInflater.createViewFromTag
(LayoutInflater.java:570)
E/AndroidRuntime(13480): ... 24 more
在xml文件中自定义了下面一个插件:
对应的View实现定义如下:
解决方案:
android在用proguard混淆时,一般情况下使用系统自带的配置文件就可以保持大部分外部需要引用的类,比如Activity,view扩展等等,但是在本项目的proguard文件中没有保存AppPicsGallery所引用的Gallery类,所以要在proguard.cfg文件中加入
-keep public class *
extends android.widget.Gallery{
public *;
}
另外,有些情况下一些引入的外部lib,如果被混淆也会出现各种各样的问题,如果不想混淆这些包,就要加上
-keep class
packagename.** {*;}
这样就能完整保持原有class了。
- 大小: 27 KB
- 大小: 27 KB
分享到:
相关推荐
`AndroidAutoSize`是一个非常实用的库,它提供了一种低成本、易于操作的解决方案来处理这个问题。这个名为"AndroidAutoSize.rar"的压缩包包含了`AndroidAutoSize`库的相关源码和示例,方便开发者理解和应用。 `...
本资源包"Android下拉刷新控件(ListView好ScrollView版).zip"提供了一个适用于ListView和ScrollView的下拉刷新解决方案,它使得这两种常见的滚动视图能够支持下拉刷新功能,从而增强用户界面的交互性和数据的实时...
QT4A (Quick Test for Android),基于QTA提供面向Android应用的UI测试自动化测试解决方案。支持多设备同时测试支持跨进程、跨应用测试支持进行过控件混淆的安装包(需要mapping文件)支持自定义控件(如果有代码混淆...
在Android开发中,打包...总的来说,Android Studio提供了方便的方式来打包JAR和DEX文件,无论是对于库的分发还是应用的构建,都提供了灵活的解决方案。在实际开发中,理解这些打包过程以及如何进行优化是非常关键的。
【Android项目实例——AndroidQQ详解】 在Android开发领域,实践是掌握技术的关键步骤。...通过深入研究这个项目,不仅可以掌握Android开发的基本技巧,还能了解到实际应用中的最佳实践和解决方案。
QT4A(适用于Android的快速测试),基于QTA提供面向Android应用程序的UI测试自动化测试解决方案。 特性介绍 支持Android 2.3-8.1版本 支持多设备协同测试 支持跨进程,跨应用测试 支持进行过控件重
"VerticalSeekbar.zip" 文件就是针对这一需求提供的一种解决方案,它包含了一个定制的垂直 SeekBar 控件,适用于 Java 编程的 Android 应用程序。 首先,我们来了解一下 SeekBar 的基本概念。SeekBar 是 Android ...
1. **UI库**:例如Material Design实现、自定义控件、动画库等,帮助开发者创建美观且交互性强的用户界面。 2. **网络库**:如Retrofit、OkHttp等,用于简化网络请求和响应处理。 3. **数据管理**:如Room数据库、...
《Android开发全书》源代码是一份非常宝贵的资源,对于正在学习或已经在从事Android应用开发的人员来说,它提供了一次...这些源代码涵盖了各种常见问题的解决方案和最佳实践,是开发者成长道路上不可或缺的参考资料。
在Android Studio中,第三方库的引入、自定义控件以及复杂的代码结构都可能导致这类问题。 例如,文中提到的错误可能是由于混淆设置不当导致的。在Android项目中,为了减小APK大小和提高安全性,开发者通常会启用...
通过分析网易客户端的源代码,开发者不仅可以学习到如何构建一个完整的Android应用,还能了解到实际开发中的一些最佳实践和解决方案。同时,这样的实践有助于提高开发者对Android系统机制、UI设计、网络通信、数据...
在Android开发领域,实践是掌握技术的关键。...这些源码实例不仅有助于你掌握Android开发的基础,还能帮助你在遇到实际问题时找到解决方案。通过深入学习和实践,你将能够独立开发出功能完善的Android应用程序。
- 实现过程:详细介绍开发流程,包括遇到的问题及解决方案。 - 测试与优化:描述测试方法,性能优化措施及用户体验改进。 - 结果与展望:展示最终成果,对未来发展的设想。 通过深入研究这个“MetroUI”源码,...
通过研究这个源码,开发者不仅可以掌握Android应用开发的基础技术,还能了解到实际项目中的最佳实践和解决方案,提升自己的开发能力。同时,对于有志于从事移动应用开发的学生或开发者,这是一个很好的学习和参考...
如果你的应用需要一个快速集成、可定制的日期选择对话框,`date_picker_dialog`可能是一个很好的解决方案。只需下载解压,按照提供的文档和示例进行操作,就能轻松将这个组件融入到你的项目中。 需要注意的是,在...
不过,对于滑动删除,通常我们会使用自定义的解决方案。 2. **自定义Adapter**:为了实现滑动删除,我们需要对默认的Adapter进行扩展,创建一个新的Adapter类。在这个自定义Adapter中,我们需要添加处理滑动事件的...
解决方案包括但不限于: - **对象池**:对于可复用的对象,可以使用对象池技术来避免频繁创建。 - **Bitmap缓存**:对于频繁使用的Bitmap,可以通过缓存机制来减少内存分配。 - **避免循环体内创建对象**:将对象...
- **防止拆包的方法**:可以通过混淆代码、加密资源文件、使用自定义加载器等方式来增加逆向工程的难度。 #### 移动开发趋势与现状 - **硬件**:移动设备的硬件性能持续提升,如更快的处理器、更大的存储空间、更...
"安卓龙"项目可能关注内存管理、CPU使用、电量消耗等方面,通过ProGuard进行代码混淆,使用Android Profiler进行性能分析,优化代码结构,减少不必要的计算和资源加载。 总结来说,"安卓龙"项目是一个综合性的...
在Android应用开发中,`RecyclerView`和`ListView`是两种常用的列表控件,它们用于展示大量数据并实现滚动效果。而`Checkbox`则常用于在列表项中提供多选功能。本篇将深入探讨如何在`RecyclerView`和`ListView`中...