Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.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 错误:无法运行包含Firebase jar的应用程序 渐变输出:_Java_Android_Android Studio_Firebase_Proguard - Fatal编程技术网

Java 错误:无法运行包含Firebase jar的应用程序 渐变输出:

Java 错误:无法运行包含Firebase jar的应用程序 渐变输出:,java,android,android-studio,firebase,proguard,Java,Android,Android Studio,Firebase,Proguard,在设备上运行时,当点击应用程序中的聊天选项卡时,应用程序崩溃 E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.NoSuchFieldError: PUBLIC_ONLY at java.lang.Class.getDeclaredAnnotation(Native Method) at java.lang.Class.getAnnotation(Class.java:243)

在设备上运行时,当点击应用程序中的聊天选项卡时,应用程序崩溃

E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.NoSuchFieldError: PUBLIC_ONLY
            at java.lang.Class.getDeclaredAnnotation(Native Method)
            at java.lang.Class.getAnnotation(Class.java:243)
            at com.d.a.a.c.f.ae.<clinit>(Unknown Source)
            at com.d.a.a.c.z.<clinit>(Unknown Source)
            at com.a.a.e.<clinit>(Unknown Source)
            at com.woodpeck3r.janasena.app.Views.c.a(Unknown Source)
            at android.support.v4.app.Fragment.b(Unknown Source)
            at android.support.v4.app.r.a(Unknown Source)
            at android.support.v4.app.r.a(Unknown Source)
            at android.support.v4.app.d.run(Unknown Source)
            at android.support.v4.app.r.e(Unknown Source)
            at android.support.v4.app.r.b(Unknown Source)
            at android.support.v4.app.v.b(Unknown Source)
            at android.support.v4.view.ViewPager.a(Unknown Source)
            at android.support.v4.view.ViewPager.c(Unknown Source)
            at android.support.v4.view.bs.run(Unknown Source)
            at android.view.Choreographer$CallbackRecord.run(Choreographer.java:791)
            at android.view.Choreographer.doCallbacks(Choreographer.java:591)
            at android.view.Choreographer.doFrame(Choreographer.java:560)
            at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:777)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:176)
            at android.app.ActivityThread.main(ActivityThread.java:5419)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
            at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime﹕ 致命异常:主
java.lang.NoSuchFieldError:仅限公共\u
位于java.lang.Class.getDeclaredAnnotation(本机方法)
位于java.lang.Class.getAnnotation(Class.java:243)
在com.d.a.a.c.f.ae(未知来源)
地址:com.d.a.a.c.z.(来源不明)
在com.a.a.e.(未知来源)
在com.woodpeck3r.janasena.app.Views.c.a(未知来源)
位于android.support.v4.app.Fragment.b(未知源)
位于android.support.v4.app.r.a(未知来源)
位于android.support.v4.app.r.a(未知来源)
位于android.support.v4.app.d.run(未知源)
位于android.support.v4.app.r.e(未知来源)
位于android.support.v4.app.r.b(未知来源)
位于android.support.v4.app.v.b(未知来源)
位于android.support.v4.view.ViewPager.a(未知源)
位于android.support.v4.view.ViewPager.c(未知源)
位于android.support.v4.view.bs.run(未知源)
在android.view.Choreographer$CallbackRecord.run(Choreographer.java:791)
位于android.view.Choreographer.doCallbacks(Choreographer.java:591)
位于android.view.Choreographer.doFrame(Choreographer.java:560)
在android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:777)中
位于android.os.Handler.handleCallback(Handler.java:730)
位于android.os.Handler.dispatchMessage(Handler.java:92)
位于android.os.Looper.loop(Looper.java:176)
位于android.app.ActivityThread.main(ActivityThread.java:5419)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:525)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
在dalvik.system.NativeStart.main(本机方法)
我找到了解决方案: 在project.properties中,添加以下内容:

-dontwarn com.shaded.fasterxml.**
-dontwarn org.apache.**
-dontwarn org.shaded.apache.**
-keepnames class com.shaded.fasterxml.jackson.** { *; }
-keepnames class org.shaded.apache.**

这对我很有用

尝试添加到“proguard.cfg”:

-injars bin/classes
-injars libs
-keep class android.support.v4.** { *; }
-keep class ____insert_your_package_lib_inside_jar_file.** { *; }

看起来您还包括了一些依赖于Java servlet的库:

找不到超类或接口javax.servlet.ServletContextListener

如果是这样,您将无法在Android下编译它,因为Servlet需要附加并正确地进行索引——我不确定这是否可行


Android使用了不同的字节码标准,它依赖于Dalvik VM而不是Sun的JVM…

到目前为止,您做了什么来尝试解决这个错误?我已经尝试将所有这些包的-dontwarn放在Progord文件中。但正因为如此,该应用程序在发布版apk中被迫退出。在错误列表中,Firebase的缺失令人怀疑。你是如何确定这是相关的?你把罐子放在你的libs文件夹里了吗?你把它添加到你的类路径了吗?你看了吗?你能为我们提供一些线索来了解你的环境和设置,并通过告诉我们你已经尝试了什么来缩小可能性吗?@Kato我通过查看firebase jar中的类了解到了这一点。我把这个罐子和其他罐子一样放在libs文件夹中。我使用的是Android Studio。很酷,其他的东西比如添加到类路径怎么样?我们需要的不仅仅是错误,还要看到遗漏了什么。
-injars bin/classes
-injars libs
-keep class android.support.v4.** { *; }
-keep class ____insert_your_package_lib_inside_jar_file.** { *; }