Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Proguard和两个使用相同android库的项目。广播。ClassNotFoundException_Java_Android_Proguard - Fatal编程技术网

Java Proguard和两个使用相同android库的项目。广播。ClassNotFoundException

Java Proguard和两个使用相同android库的项目。广播。ClassNotFoundException,java,android,proguard,Java,Android,Proguard,问题是:我有两个应用程序。电视台通过广播相互交流。我在android库中有parcelable类(他们在库中发送类的内容)。所以在使用Proguard之后,我得到了ClassNotFondException。如何解决 07-03 02:13:51.832: E/AndroidRuntime(6801): FATAL EXCEPTION: main 07-03 02:13:51.832: E/AndroidRuntime(6801): java.lang.RuntimeException: Un

问题是:我有两个应用程序。电视台通过广播相互交流。我在android库中有parcelable类(他们在库中发送类的内容)。所以在使用Proguard之后,我得到了ClassNotFondException。如何解决

07-03 02:13:51.832: E/AndroidRuntime(6801): FATAL EXCEPTION: main

07-03 02:13:51.832: E/AndroidRuntime(6801): java.lang.RuntimeException: Unable to start receiver <appname>.<name>.ar.free.BRMain: java.lang.RuntimeException: Parcelable encounteredClassNotFoundException reading a Serializable object (name = <appname>.a.a.b)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:2277)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at android.app.ActivityThread.access$1500(ActivityThread.java:140)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at android.os.Handler.dispatchMessage(Handler.java:99)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at android.os.Looper.loop(Looper.java:137)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at android.app.ActivityThread.main(ActivityThread.java:4898)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at java.lang.reflect.Method.invokeNative(Native Method)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at java.lang.reflect.Method.invoke(Method.java:511)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at dalvik.system.NativeStart.main(Native Method)

07-03 02:13:51.832: E/AndroidRuntime(6801): Caused by: java.lang.RuntimeException: Parcelable encounteredClassNotFoundException reading a Serializable object (name = <appname>.a.a.b)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at android.os.Parcel.readSerializable(Parcel.java:2148)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at android.os.Parcel.readValue(Parcel.java:2016)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at android.os.Parcel.readMapInternal(Parcel.java:2226)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at android.os.Bundle.unparcel(Bundle.java:223)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at android.os.Bundle.getInt(Bundle.java:922)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at <appname>.<name>.ar.free.BRMain.onReceive(BRMain.java:35)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:2270)

07-03 02:13:51.832: E/AndroidRuntime(6801):     ... 10 more

07-03 02:13:51.832: E/AndroidRuntime(6801): Caused by: java.lang.ClassNotFoundException: <appname>.a.a.b

07-03 02:13:51.832: E/AndroidRuntime(6801):     at java.lang.Class.classForName(Native Method)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at java.lang.Class.forName(Class.java:217)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:2301)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at java.io.ObjectInputStream.readNewClassDesc(ObjectInputStream.java:1660)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:683)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1803)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2003)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1960)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at android.os.Parcel.readSerializable(Parcel.java:2142)

07-03 02:13:51.832: E/AndroidRuntime(6801):     ... 16 more

07-03 02:13:51.832: E/AndroidRuntime(6801): Caused by: java.lang.NoClassDefFoundError: <appname>/a/a/b

07-03 02:13:51.832: E/AndroidRuntime(6801):     ... 26 more

07-03 02:13:51.832: E/AndroidRuntime(6801): Caused by: java.lang.ClassNotFoundException: <appname>.a.a.b

07-03 02:13:51.832: E/AndroidRuntime(6801):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)

07-03 02:13:51.832: E/AndroidRuntime(6801):     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)

07-03 02:13:51.832: E/AndroidRuntime(6801):     ... 26 more
07-03 02:13:51.832:E/AndroidRuntime(6801):致命异常:main
07-03 02:13:51.832:E/AndroidRuntime(6801):java.lang.RuntimeException:无法启动接收器..ar.free.BRMain:java.lang.RuntimeException:Parcelable EncountedClassNotFoundException:读取可序列化对象(名称=.a.a.b)
07-03 02:13:51.832:E/AndroidRuntime(6801):位于android.app.ActivityThread.handleReceiver(ActivityThread.java:2277)
07-03 02:13:51.832:E/AndroidRuntime(6801):在android.app.ActivityThread.access$1500(ActivityThread.java:140)
07-03 02:13:51.832:E/AndroidRuntime(6801):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
07-03 02:13:51.832:E/AndroidRuntime(6801):位于android.os.Handler.dispatchMessage(Handler.java:99)
07-03 02:13:51.832:E/AndroidRuntime(6801):在android.os.Looper.loop(Looper.java:137)上
07-03 02:13:51.832:E/AndroidRuntime(6801):位于android.app.ActivityThread.main(ActivityThread.java:4898)
07-03 02:13:51.832:E/AndroidRuntime(6801):位于java.lang.reflect.Method.Invokenactive(本机方法)
07-03 02:13:51.832:E/AndroidRuntime(6801):位于java.lang.reflect.Method.invoke(Method.java:511)
07-03 02:13:51.832:E/AndroidRuntime(6801):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
07-03 02:13:51.832:E/AndroidRuntime(6801):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
07-03 02:13:51.832:E/AndroidRuntime(6801):在dalvik.system.NativeStart.main(本机方法)
07-03 02:13:51.832:E/AndroidRuntime(6801):由以下原因引起:java.lang.RuntimeException:Parcelable遇到ClassNotFoundException读取可序列化对象(名称=.a.a.b)
07-03 02:13:51.832:E/AndroidRuntime(6801):在android.os.Parcel.readSerializable(Parcel.java:2148)
07-03 02:13:51.832:E/AndroidRuntime(6801):在android.os.Parcel.readValue(Parcel.java:2016)上
07-03 02:13:51.832:E/AndroidRuntime(6801):在android.os.Parcel.readMapInternal(Parcel.java:2226)
07-03 02:13:51.832:E/AndroidRuntime(6801):在android.os.Bundle.unparcel(Bundle.java:223)
07-03 02:13:51.832:E/AndroidRuntime(6801):位于android.os.Bundle.getInt(Bundle.java:922)
07-03 02:13:51.832:E/AndroidRuntime(6801):at..ar.free.BRMain.onReceive(BRMain.java:35)
07-03 02:13:51.832:E/AndroidRuntime(6801):位于android.app.ActivityThread.handleReceiver(ActivityThread.java:2270)
2007-03 02:13:51.832:E/AndroidRuntime(6801):。。。10多
07-03 02:13:51.832:E/AndroidRuntime(6801):由以下原因引起:java.lang.ClassNotFoundException:.a.b
07-03 02:13:51.832:E/AndroidRuntime(6801):位于java.lang.Class.classForName(本机方法)
07-03 02:13:51.832:E/AndroidRuntime(6801):位于java.lang.Class.forName(Class.java:217)
07-03 02:13:51.832:E/AndroidRuntime(6801):位于java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:2301)
07-03 02:13:51.832:E/AndroidRuntime(6801):位于java.io.ObjectInputStream.readNewClassDesc(ObjectInputStream.java:1660)
07-03 02:13:51.832:E/AndroidRuntime(6801):位于java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:683)
07-03 02:13:51.832:E/AndroidRuntime(6801):位于java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1803)
07-03 02:13:51.832:E/AndroidRuntime(6801):位于java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787)
07-03 02:13:51.832:E/AndroidRuntime(6801):位于java.io.ObjectInputStream.readObject(ObjectInputStream.java:2003)
07-03 02:13:51.832:E/AndroidRuntime(6801):位于java.io.ObjectInputStream.readObject(ObjectInputStream.java:1960)
07-03 02:13:51.832:E/AndroidRuntime(6801):在android.os.Parcel.readSerializable(Parcel.java:2142)
2007-03 02:13:51.832:E/AndroidRuntime(6801):。。。还有16个
07-03 02:13:51.832:E/AndroidRuntime(6801):由以下原因引起:java.lang.NoClassDefFoundError:/a/a/b
2007-03 02:13:51.832:E/AndroidRuntime(6801):。。。26多
07-03 02:13:51.832:E/AndroidRuntime(6801):由以下原因引起:java.lang.ClassNotFoundException:.a.b
07-03 02:13:51.832:E/AndroidRuntime(6801):在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
07-03 02:13:51.832:E/AndroidRuntime(6801):位于java.lang.ClassLoader.loadClass(ClassLoader.java:501)
07-03 02:13:51.832:E/AndroidRuntime(6801):位于java.lang.ClassLoader.loadClass(ClassLoader.java:461)
2007-03 02:13:51.832:E/AndroidRuntime(6801):。。。26多

需要将
Parcelable
类添加到
proguard project.txt
文件中,然后在项目上再次运行proguard

例如,您可能希望将以下内容添加到
proguard project.txt
文件中,当然要替换类的完全限定名:

-keep public class com.example.MyParcelableClass

谢谢!你大大节省了我的时间!