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
解决方案:
android在用proguard混淆时,一般情况下使用系统自带的配置文件就可以保持大部分外部需要引用的类,比如Activity,view扩展等等,可以参考sdk\tools\proguard\proguard-android.txt
如果自定义控件不在proguard-android继承上面的类中,如自定义相册类MyGallery,这时就要加上:
-keep public class * extends android.widget.Gallery{
public *;
}
如果自定义控件(MyView)继承上面的类,还报错的话,那自己再重新加上:
-keep public class yourpackagename.MyView{*;} //单个控件
如果自很多定义控件统一放在一个包名下的话,可以这样加:
-keep public class yourpackagename.**{*;} //整个包下的所有类
另外,有些情况下使用了aidl,也要记得加上。
如果是库文件,这样加:
-libraryjars libs/android-support-v4.jar
ps.今天通过ant打包,安装时遇到证书失败的情况,是由于jdk是1.7导致,重新安装1.6就可以了