1. 程式人生 > >【 Android Error】 java.lang.NoClassDefFoundError 的解決辦法

【 Android Error】 java.lang.NoClassDefFoundError 的解決辦法

近期新來了一位同事,從SVN down下程式碼後,總報下面這錯誤,讓新同事很是苦惱,甚至重灌了一遍系統偷笑


java java.lang.NoClassDefFoundError

這個錯誤,之前我也沒碰到過,後來查閱資料才瞭解,導致這個錯誤總共有3個原因:

1.Java環境變數的配置錯誤,把classpath的環境變數重新配置一遍就好了,具體方法就不多說了,大家都會;

2.載入第三方包的時候報錯,重新再建一個libs包,覆蓋一遍就好了;

3.這個讓我在跑專案時也碰到了,5.0以下的機型全部報這個錯誤,5.0以上的全部正常執行,後來才發現原因:我gradle中已經聲明瞭 multiDexEnabled true

 ,當方法數超過65535時便會自動打出兩個Dex包命名為 classes.dexclasses2.dex ,一些方法被打入了第二個dex包,即classes2.dex中,導致了5.0以下機型無法執行應用報錯(65535這個大家都懂,不多說啦)。

具體解決方法是新增依賴:compile 'com.android.support:multidex:1.0.1' (支援5.0以下的),然後在專案的application中再新增一個方法:

protected void attachBaseContext(Context context) {
        super.attachBaseContext(context);
        MultiDex.install(this);
}
我個人是通過第三種解決問題的,碰到這個問題大概就是以上這三種解決方法,Over~~

相關推薦

Android Error java.lang.NoClassDefFoundError解決辦法

近期新來了一位同事,從SVN down下程式碼後,總報下面這錯誤,讓新同事很是苦惱,甚至重灌了一遍系統 java java.lang.NoClassDefFoundError 這個錯誤,之前我也沒碰

緩衝問題java.lang.NoClassDefFoundError: org/apache/jsp/Index_jsp (wrong name: org/apache/jsp/index_js

嚴重: Servlet.service() for servlet jsp threw exception java.lang.NoClassDefFoundError: org/apache/jsp/Index_jsp (wrong name: org/

Android學習java.lang.SecurityException: ConnectivityService: Neither user 10134 nor current process

參考 修改AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:androi

關於lib資料夾和報java.lang.NoClassDefFoundError解決辦法

1、在工程下新建lib資料夾,將需要的第三方包拷貝進來。或者直接放在libs下.2、將引用的第三方包,新增進工作的build path。3、(關鍵的一步)將lib設為原始檔夾source folder。如果不設定,則程式編譯可以通過,但執行的時候,會報: java.lang

Java筆記java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory解決方法

解決方法:匯入commons-logging.jar包 如果用的是maven直接用: <dependency>         <groupId>commons-logging</g

異常篇-spring-java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext

引起 Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/li

Android studio 出現java.lang.NoClassDefFoundError錯誤的一種解決方案 5.0以下機型無法執行應用報錯

在重構中,添加了一些第三方類庫,使得整個Android程式的方法數超出了65535,這個時候打包時應該出現下面這個錯誤 Process: com.youzhiapp.cityonhand, PID: 13155 java.lang.NoClassDefFoundError:

BeanUtils出現Java.lang.NoClassDefFoundError解決

ons web項目 lang com 發生 noclass 導入 cat 導致 問題描述: javaWeb項目中導入了BeanUtils的兩個包,但是還是出現Java.lang.NoClassDefFoundError: org/apache/commons/beanuti

報錯java.lang.ClassNotFoundException: org.apache.ibatis.session.SqlSession

end pac dep ssi apache 明顯 exce tro iba 報錯 java.lang.ClassNotFoundException: org.apache.ibatis.session.SqlSession 或者 java.lang.ClassNotFou

JavaBug篇java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransactionFact

Got unchecked and undeclared exception which called by 192.168.228.1. service: cn.uppp.user.IUserCor

windwos下啟動Redis或者Sentinel報錯listen:Unknown error的原因及解決辦法

筆者一般在linux下使用redis,因為redis團隊並沒有編寫windows版本的redis,所以windows版本的redis維護和更新沒有linux版本的及時。最近有同事在windows下使用redis時遇到了問題,具體如下。 1. 報錯資訊 報

Android 程式設計下 java.lang.NoClassDefFoundError: cn.jpush.android.api.JPushInterface 報錯

使用了極光推送的 jar 包專案在從 SVN 中檢出後,如果不重新對 jar 包和 Bulid Path 進行配置就會丟擲 java.lang.NoClassDefFoundError: cn.jpush.android.api.JPushInterface 的錯誤,進行

android 執行中 java.lang.NoClassDefFoundError:問題報錯的一個原因

今天改完東西執行時發現會報: I/art     ( 3294): Rejecting re-init on previously-failed class java.lang.Class(xx.xxx.xxx)  E/AndroidRuntime( 3294): FATA

關於引入第三方jar包引發的java.lang.NoClassDefFoundError解決

       在我們引入第三方jar包的時候,有時候編譯不報錯,但執行會報java.lang.NoClassDefFoundError; 針對這個問題,以下兩種方案可以解決問題,但建議選取第二種,因

eclipse下執行wordcount報錯 java.lang.ClassNotFoundException 解決辦法

eclipse下執行wordcount報錯 java.lang.classnotfoundexception 解決辦法eclipse下執行wordcount報錯 java.lang.ClassNotFoundException17/08/29 07:52:54 INFO Configuration.depre

java專案啟動時,java.lang.StackOverflowError 解決辦法

之前做的一個專案,一切正常。有天在啟動時,突然報錯了。 報錯資訊如上 看日誌猜測是資料庫連線池爆了,然後改資料庫連線池配置,沒有用。 一想到是棧溢位,想可能是記憶體小了,重新分配idea、tomcat記憶體,沒有用。 然後去百度,別人都說是遞迴等方法層級太深,可是我

java.lang.SecurityException解決辦法

Exception in thread "main" java.lang.SecurityException: invalid SHA1 signature file digest for com/microsoft/sqlserver/jdbc/SQLServerExce

java.lang.String cannot be cast to java.lang.Integer解決辦法

今天寫SSM框架時候,後臺介面報錯,控制檯輸出java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer,如下圖: 報錯原因是因為型別轉換錯誤,不能將String型別轉化成Intege

java.lang.IllegalStateException解決辦法

一:java.lang.IllegalStateExceptionat org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1612)at org.apache.cat

java.lang.NoSuchMethodException: 解決辦法

  在做專案得時候碰到了這個異常,最奇怪得地方是明明我就有這個方法 系統總是提示這個異常提示找不到這個方法, 最後才發現,我這個方法是這麼寫得 private String checkLogin(){            String flag = ERROR;