天道酬勤,学无止境

java.lang.NoSuchFieldError: PUBLIC_ONLY 在签名版本中使用 android 中的 Box api 时(java.lang.NoSuchFieldError: PUBLIC_ONLY while using Box api in android in signed build)

问题

我开发了包含 Dropbox、Google 驱动器和 Box 云服务的 android 应用程序。 我测试了它,一切正常。 之后我签署了它,我意识到调试 apk 大小为 8.5MB,而签名 apk 大小为 7MB。仍然我测试了完整的应用程序,其中除了 Box 云功能之外,一切正常。我得到了以下异常

        11-28 12:51:14.129: E/AndroidRuntime(2702): FATAL EXCEPTION: main
    11-28 12:51:14.129: E/AndroidRuntime(2702): Process: com.idealtech.mycoud, PID: 2702
    11-28 12:51:14.129: E/AndroidRuntime(2702): java.lang.NoSuchFieldError: PUBLIC_ONLY
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at java.lang.Class.getDeclaredAnnotation(Native Method)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at java.lang.Class.getAnnotation(Class.java:290)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at com.b.a.c.f.ae.<clinit>(Unknown Source)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at com.b.a.c.z.<clinit>(Unknown Source)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at com.box.boxjavalibv2.jsonparsing.BoxJSONParser.<init>(Unknown Source)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at com.box.boxjavalibv2.BoxClient.a(Unknown Source)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at com.box.boxjavalibv2.BoxClient.<init>(Unknown Source)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at com.box.boxjavalibv2.BoxClient.<init>(Unknown Source)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at com.box.boxandroidlibv2.BoxAndroidClient.<init>(Unknown Source)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at com.box.boxandroidlibv2.activities.OAuthActivity.a(Unknown Source)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at com.box.boxandroidlibv2.activities.OAuthActivity.a(Unknown Source)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at com.box.boxandroidlibv2.activities.OAuthActivity.onCreate(Unknown Source)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at android.app.Activity.performCreate(Activity.java:5248)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at android.app.ActivityThread.access$800(ActivityThread.java:139)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at android.os.Handler.dispatchMessage(Handler.java:102)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at android.os.Looper.loop(Looper.java:136)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at android.app.ActivityThread.main(ActivityThread.java:5086)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at java.lang.reflect.Method.invokeNative(Native Method)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at java.lang.reflect.Method.invoke(Method.java:515)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
    11-28 12:51:14.129: E/AndroidRuntime(2702):     at dalvik.system.NativeStart.main(Native Method)

它没有得到它在调试中找到的库。我该怎么做才能解决这个问题? 请帮我。 由于这个问题,我无法发布我的应用程序。 提前致谢。

回答1

我在用 proguard 编译它时因为 jackson 库而遇到这个问题,我通过在 proguard 文件中添加以下几行来修复它。

-keepnames class com.fasterxml.jackson.** { 
*; 
}
-keepnames interface com.fasterxml.jackson.** { 
    *; 
}

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • java.lang.NoSuchFieldError: PUBLIC_ONLY while using Box api in android in signed build
    I have developed android application which contains Dropbox,Google drive and Box cloud service. I tested it and everything was working. After that I signed it and I realized that debug apk size was 8.5MB whereas signed apk size was 7MB.Still I tested complete application in which everything was working except Box cloud functionality.I got below exception 11-28 12:51:14.129: E/AndroidRuntime(2702): FATAL EXCEPTION: main 11-28 12:51:14.129: E/AndroidRuntime(2702): Process: com.idealtech.mycoud, PID: 2702 11-28 12:51:14.129: E/AndroidRuntime(2702): java.lang.NoSuchFieldError: PUBLIC_ONLY 11-28 12
  • Android:更新至SDK 23后出现java.land.NoSuchFieldError(Android: java.land.NoSuchFieldError after update to SDK 23)
    问题 我将SDK更新为23,并将gradle.build更新为API 23,将支持库更新为23.0.0,依此类推,并且在尝试运行该应用程序时,出现以下错误(编译正常)。 java.lang.NoSuchFieldError: No instance field mFragments of type Landroid/support/v4/app/FragmentManagerImpl; in class Landroid/support/v4/app/Watson; or its superclasses (declaration of 'android.support.v4.app.Watson' appears in /data/app/com.my.app-1/base.apk) at android.support.v4.app.Watson.onCreatePanelMenu(Watson.java:50) at com.actionbarsherlock.ActionBarSherlock.callbackCreateOptionsMenu(ActionBarSherlock.java:560) at com.actionbarsherlock.internal.ActionBarSherlockNative.dispatchCreateOptionsMenu
  • java.lang.NoSuchFieldError: android.support.v7.appcompat(java.lang.NoSuchFieldError: android.support.v7.appcompat)
    问题 我将我的支持库从 r20 更新到 r21,现在当我运行我的应用程序时,我在主要活动的super.onCreate中收到此错误: java.lang.NoSuchFieldError: android.support.v7.appcompat.R$styleable.Theme_windowActionBar at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:145) at android.support.v7.app.ActionBarActivityDelegateBase.onCreate(ActionBarActivityDelegateBase.java:139) at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:123) at (packageName).Main.onCreate(Main.java:64) at android.app.Activity.performCreate(Activity.java) at android.app.Instrumentation.callActivityOnCreate
  • Java应用程序中Mashape Unirest的java.lang.NoSuchFieldError:org.apache.http.message.BasicLineFormatter.INSTANCE(java.lang.NoSuchFieldError: org.apache.http.message.BasicLineFormatter.INSTANCE from Mashape Unirest in Java application)
    问题 我有一个使用Mashape Unirest将HTTP请求发送到其他URL的Maven Java项目。 我目前正在编写一个集成测试(使用TestNG ),该测试使用Unirest发送正常的HTTP请求。 当我通过Maven(通过Failsafe插件)运行集成测试时,请求已成功发送出去。 但是,当我尝试通过Eclipse运行集成测试时,我不断遇到以下错误: FAILED: getCurrentTimeTest java.lang.NoSuchFieldError: INSTANCE at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:52) at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:56) at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<clinit>(DefaultHttpRequestWriterFactory.java:46) at org.apache.http.impl.conn
  • 获取NoSuchFieldError INSTANCE org / apache / http / message / BasicHeaderValueParser(Getting NoSuchFieldError INSTANCE org/apache/http/message/BasicHeaderValueParser)
    问题 我正在使用Android上的应用程序。 我正在使用httpcore 4.3.3。 当我尝试使用ContentType.parse(string)时得到此消息 java.lang.NoSuchFieldError: No static field INSTANCE of type Lorg/apache/http/message/BasicHeaderValueParser; in class Lorg/apache/http/message/BasicHeaderValueParser; or its superclasses (declaration of 'org.apache.http.message.BasicHeaderValueParser' appears in /system/framework/ext.jar) 我已经进行了一些谷歌搜索,并且了解为什么会收到错误,但不确定如何解决。 从我阅读的内容来看,似乎ContentType试图利用Android随附的BasicHeaderValueParser,并且该类还没有INSTANCE字段。 有什么帮助吗? 这些是相关的进口: compile('org.apache.httpcomponents:httpmime:4.3.6') { exclude module: 'httpclient' } compile
  • java.lang.NoSuchFieldError android / support / v7 / AppCompat /(java.lang.NoSuchFieldError android/support/v7/AppCompat/)
    问题 今天开始我的日食之后,我运行的任何项目都会返回以下错误: 08-06 08:01:23.770: E/AndroidRuntime(5406): FATAL EXCEPTION: main 08-06 08:01:23.770: E/AndroidRuntime(5406): Process: be.thomasmore.powerfactory, PID: 5406 08-06 08:01:23.770: E/AndroidRuntime(5406): java.lang.NoSuchFieldError: No static field abc_screen_toolbar of type I in class Landroid/support/v7/appcompat/R$layout; or its superclasses (declaration of 'android.support.v7.appcompat.R$layout' appears in /data/app/be.thomasmore.powerfactory-2/base.apk) 08-06 08:01:23.770: E/AndroidRuntime(5406): at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor
  • java.lang.NoSuchFieldError:org.apache.http.message.BasicLineFormatter.INSTANCE(java.lang.NoSuchFieldError: org.apache.http.message.BasicLineFormatter.INSTANCE)
    问题 再会! 我需要帮助! 我开发了与IIS(SharePoint)集成的android应用程序。 当我运行此代码(代码2)时,出现错误 java.lang.NoSuchFieldError:org.apache.http.message.BasicLineFormatter.INSTANCE 我在onCreate(Code 1)方法的firstActivity中运行此代码 版本httpclient-4.3; 代码1 new Thread(new Runnable() { @Override public void run() { new HttpsClietn(); } }).run(); 代码2 package com.example.HttpsMy; import android.os.Environment; import org.apache.http.auth.AuthScope; import org.apache.http.auth.NTCredentials; import org.apache.http.client.CredentialsProvider; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org
  • HTTPClient示例-线程“ main”中的异常java.lang.NoSuchFieldError:INSTANCE(HTTPClient Example - Exception in thread “main” java.lang.NoSuchFieldError: INSTANCE)
    问题 我将Apache的HttpClient组件用于以下简单程序,并且看到以下异常: Exception in thread "main" java.lang.NoSuchFieldError: INSTANCE at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.(DefaultHttpRequestWriterFactory.java:52) at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.(DefaultHttpRequestWriterFactory.java:56) at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.(DefaultHttpRequestWriterFactory.java:46) at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.(ManagedHttpClientConnectionFactory.java:72) at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory
  • How to setup PROGUARD for Jackson JSON Processor?
    I am using Jackson JSON Processor for my app.Included this using compile 'com.fasterxml.jackson.core:jackson-databind:2.4.2' compile 'com.fasterxml.jackson.core:jackson-annotations:2.4.2'. And my proguard configuration is. ## BEGIN -- Google Play Services proguard.txt -keep class * extends java.util.ListResourceBundle { protected java.lang.Object[][] getContents(); } # Keep SafeParcelable value, needed for reflection. This is required to support backwards # compatibility of some classes. -keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable { public static final *
  • 如何为杰克逊JSON处理器设置PROGUARD?(How to setup PROGUARD for Jackson JSON Processor?)
    问题 我正在为我的应用程序使用Jackson JSON Processor。 compile 'com.fasterxml.jackson.core:jackson-databind:2.4.2' compile 'com.fasterxml.jackson.core:jackson-annotations:2.4.2'. 而我的proguard配置是。 ## BEGIN -- Google Play Services proguard.txt -keep class * extends java.util.ListResourceBundle { protected java.lang.Object[][] getContents(); } # Keep SafeParcelable value, needed for reflection. This is required to support backwards # compatibility of some classes. -keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable { public static final *** NULL; } # Keep the names of classes
  • 在java中读取Excel工作表时出现NoSuchFieldError(NoSuchFieldError when reading Excel sheet in java)
    问题 我遵循了使用 Apache POI XSSF 构建工作簿的简单指南。 按照相同的指南,我能够编写 Excel 工作表,但是当尝试从其中读取时,我收到代码后显示的错误。 代码: try { FileInputStream file = new FileInputStream(new File("howtodoinjava_demo.xlsx")); // Create Workbook instance holding reference to .xlsx file XSSFWorkbook workbook = new XSSFWorkbook(file); // Get first/desired sheet from the workbook XSSFSheet sheet = workbook.getSheetAt(0); // Iterate through each rows one by one Iterator<Row> rowIterator = sheet.iterator(); while (rowIterator.hasNext()) { Row row = rowIterator.next(); // For each row, iterate through all the columns Iterator<Cell> cellIterator =
  • JSON 解析器 -java.lang.NoSuchFieldError: defaultReader(JSON Parser -java.lang.NoSuchFieldError: defaultReader)
    问题 我正在使用 JSON 解析器来提取值,我正在使用以下 jar json-path-2.1.0,当我调用在 weblogic 服务器上部署为 webservice 的用例时出现以下错误我编写了一个小的主程序从 json 字符串中提取值并且它工作正常,但用例的服务器版本给出了问题。 我不确定我耳朵上是否还有其他罐子会对此产生负面影响 SEVERE: defaultReader java.lang.NoSuchFieldError: defaultReader at com.jayway.jsonpath.spi.json.JsonSmartJsonProvider.<init>(JsonSmartJsonProvider.java:39) at com.jayway.jsonpath.internal.DefaultsImpl.jsonProvider(DefaultsImpl.java:21) at com.jayway.jsonpath.Configuration.defaultConfiguration(Configuration.java:174) at com.jayway.jsonpath.internal.JsonContext.<init>(JsonContext.java:52) at com.jayway.jsonpath.JsonPath.parse
  • java.lang.NoSuchFieldError:DEF_CONTENT_CHARSET(java.lang.NoSuchFieldError: DEF_CONTENT_CHARSET)
    问题 我正在尝试运行Java程序,并且遇到以下运行时错误。错误如下所示。 Exception in thread "main" java.lang.NoSuchFieldError: DEF_CONTENT_CHARSET at org.apache.http.impl.client.DefaultHttpClient.setDefaultHttpParams(DefaultHttpClient.java:175) at org.apache.http.impl.client.DefaultHttpClient.createHttpParams(DefaultHttpClient.java:158) at org.apache.http.impl.client.AbstractHttpClient.getParams(AbstractHttpClient.java:448) at org.apache.http.impl.client.AbstractHttpClient.createClientConnectionManager(AbstractHttpClient.java:309) at org.apache.http.impl.client.AbstractHttpClient.getConnectionManager(AbstractHttpClient.java:466
  • java.lang.NoSuchFieldError: org.apache.http.message.BasicHeaderValueFormatter.INSTANCE android(java.lang.NoSuchFieldError: org.apache.http.message.BasicHeaderValueFormatter.INSTANCE android)
    问题 尝试使用以下代码上传大型视频,但出现此错误< java.lang.NoSuchFieldError: org.apache.http.message.BasicHeaderValueFormatter.INSTANCE >。 我想它的发生是由于多个类路径,但是如何在日食中纠正​​。 为此,我使用了http://hc.apache.org/downloads.cgi jar文件。该链接仅包含httpclient-4.4.jar,httpcore-4.4.jar和httpmime-4.4.jar。 public class MainActivity extends ActionBarActivity { int SELECT_VIDEO = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent intent = new Intent(); intent.setType("video/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent
  • HttpClientBuilder - java.lang.NoSuchFieldError: INSTANCE(HttpClientBuilder - java.lang.NoSuchFieldError: INSTANCE)
    问题 我有一个使用 HttpClient 来执行 HTTP 请求的 Maven Java 项目。 在我的本地 Java Web 服务器上一切正常。 但是在将其部署到 SAP Hana Cloud Platform 后,出现以下错误: java.lang.NoSuchFieldError: INSTANCE at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:52) at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:56) at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<clinit>(DefaultHttpRequestWriterFactory.java:46) at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<init>(ManagedHttpClientConnectionFactory.java:72) at org
  • NoSuchFieldError:在Play Services 6.5中使用MapFragment时,没有类型的静态字段MapAttrs(NoSuchFieldError: No static field MapAttrs of type when Using MapFragment with Play Services 6.5)
    问题 也许我在这里丢失了一些东西,但是我不能在Play Services 6.5中使用新的“仅地图”依赖项 我得到以下异常: java.lang.NoSuchFieldError: No static field MapAttrs of type [I in class Lcom/google/android/gms/R$styleable; or its superclasses (declaration of 'com.google.android.gms.R$styleable' appears in /data/app/com.kaching.merchant.dev1-1/base.apk) at com.google.android.gms.maps.GoogleMapOptions .createFromAttributes(Unknown Source) at com.google.android.gms.maps.SupportMapFragment .onInflate(Unknown Source) 显现: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <meta-data
  • java.lang.NoSuchFieldError:Eclipse中用于简单hbase Java客户端的IBM_JAVA(java.lang.NoSuchFieldError: IBM_JAVA for a simple hbase java client in Eclipse)
    问题 正如标题所示,我的源代码是: package hbase; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.util.Bytes; public class HbaseExampleClient { public static void main(String[] args) throws IOException { Configuration config = HBaseConfiguration.create(); config.set("hbase.zookeeper.quorum", "192.168.10.17"); config.set("hbase.zookeeper.property.clientPort",
  • java.lang.NoSuchFieldError:INSTANCE(java.lang.NoSuchFieldError: INSTANCE)
    问题 尝试通过StormSubmitter提交拓扑时,我得到- Caused by: java.lang.NoSuchFieldError: INSTANCE at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:52) 我正在使用Spring。 我没有在Spout / Bolt构造函数中初始化HttpClient。 相反,它是在螺栓的prepare()方法中从Spring Context获取的类的构造函数中初始化的 代码的结构如下- SomeBolt.java @Component public class SomeBolt extends BaseRichBolt { private OutputCollector _collector; private SomeClient someClient; @Override public void prepare(Map conf, TopologyContext context, OutputCollector collector) { _collector = collector; someClient = AppContext.getBean(SomeClient.class)
  • java.lang.NoSuchFieldError: APPLICATION_CONTEXT_ID_PREFIX(java.lang.NoSuchFieldError: APPLICATION_CONTEXT_ID_PREFIX)
    问题 我在运行我的项目时收到此错误,最终结果为 404。 该项目是在Spring框架上制作的。 我阅读了很多帖子,发现要么是混合了罐子,要么是多余的罐子。 接着我试着整理我的罐子。 以下列表是我在构建路径中的内容: antlr-2.7.6.jar asm.jar asm-attrs.jar cglib-2.2.jar commons-beanutils-1.7.0.jar commons-collections-3.1.jar commons-digester-1.8.jar commons-email-1.0.jar commons-fileupload-1.1.1.jar commons-io-1.2.jar commons-lang-2.5.jar commons-logging-1.1.1.jar displaytag-1.0-b3.jar dom4j-1.6.1.jar ehcache-1.1.jar hibernate3.jar hibernate-jpa-2.0-api-1.0.0.Final.jar hibernate-validator-4.0.2.GA.jar hsqldb.jar itext-2.1.3.jar javassist-3.12.0.GA.jar jdom.jar jstl-1.2.jar jta-1.1.jar log4j-1.2.14.jar
  • java.lang.NoSuchFieldError: 反射(java.lang.NoSuchFieldError: REFLECTION)
    问题 我正在使用 CXF 创建一个项目,并使用具有一定安全性的 MTOM(我不知道该信息是否相关)。 当我尝试初始化我的服务器时,我收到了那个错误: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'example': Invocation of init method failed; nested exception is java.lang.NoSuchFieldError: REFLECTION 这是我的 cxf-servlet.xml 文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"