java 運行 出現選擇_Eclipse?運行出現java.lang.NoClassDefFoundError的解決方法

上篇博文也提到了這個問題,但沒有深入的講解。這次特意做了整理,詳細解釋其原因。

先看錯誤java.lang.NoClassDefFoundError,顯然是java虛擬機找不到指定的類,多數情況下是外部jar中的類。

Eclipse的自動化,集成化,方便了我們的開發,卻也迷住了我們的雙眼。遇到這個問題,我想和大多數朋友一樣,按部就班的檢查jar包,然后右鍵Builder

path,add external archives ..

在ADT17之前,如果要在Android項目中引入外部JAR包,這種方式是正確的,只需在項目屬性的Java Build

Path中選擇Add External JARs,然后選擇相應JAR包即可。

但是,在升級到ADT17之后,Android項目下多出了一個Android Dependencies目錄,之前通過Add

External JARs加入的jar包依然出現在Referenced

Libraries目錄之下,但是似乎已經被棄用,雖然沒有提示任何錯誤,但是在運行時會拋出ClassNotFoundException。

解決方法是將JAR包加入到Android

Dependencies下,其中一個默認引入目錄是libs,因此只要將JAR包復制該目錄下。

我們用最直接的方法來看,別忘了工程下得classpath文件,這才是王道。。無論你怎么操作,最終的jar包配置都在這里。。

1、選擇項目屬性的Java Build Path中選擇Add External JARs,添加jar包,如圖:

a4c26d1e5885305701be709a3d33442f.png

最終生成的classpath如下:

encoding="UTF-8"?>

path="src"/>

path="gen"/>

path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>

kind="lib"

path="libs/android-support-v4.jar"/>

path="libs/gson-2.2.2.jar"/>

path="libs/pinyin4j-2.5.0.jar"/>?

kind="output" path="bin/classes"/>

看清楚了吧,配置的只是相對路徑,難怪找不到jar。。

有人說選擇libs文件夾,然后選擇use?as source

foalder,試了一下classpath如下:

encoding="UTF-8"?>

path="src"/>

path="gen"/>

kind="src"

path="libs"/>?

kind="con"

path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>

path="libs/android-support-v4.jar"/>

path="libs/gson-2.2.2.jar"/>

path="libs/pinyin4j-2.5.0.jar"/>

path="bin/classes"/>

增加了一句話,但還是找不到jar包。。

使用ADT17以上,默認創建的android工程會多一個Android

Dependencie這樣一個包。(這個包千萬不要刪除,刪除了找都找不回來,至少我還沒有發現找回來的辦法)所有引入的包都會備份放在Android

Dependencie包下。引入的包也必須放在指定的目錄下( 根目錄的libs目錄下),否則就找不到了。

默認的classpath文件如下:

encoding="UTF-8"?>

path="src"/>

path="gen"/>

path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>

path="com.android.ide.eclipse.adt.LIBRARIES"/>

path="bin/classes"/>

添加jar包時,只需要把jar包拷貝到Libs目錄下,這時候你會看到Android

Dependencie目錄下也會出現剛添加的jar包。

從ADT16開始,Android項目中多了一個名為“Android Dependencies”

的庫應用文件夾,這是ADT的第三方庫新的引用方式。

當你需要引用第三方庫時,只需在項目中新建一個名為"libs"的文件夾,然后將所有第三方包拷貝到該目錄下。當eclipse啟動時,ADT就會自動幫你完成庫的引用,而不需要像以前一樣自己Build

Path,也不再需要Referenced Libraries了。

如果不行,就執行下面操作:

你還需要選擇項目屬性的Java Build Path,然后選中Android Dependencie,執行Add

External JARs,然后選擇相應JAR包即可。

encoding="UTF-8"?>

path="src"/>

path="gen"/>

path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>

path="com.android.ide.eclipse.adt.LIBRARIES"/>

kind="lib"

path="D:/workspace_Android/RR/libs/gson-2.2.2.jar"/>?

kind="output" path="bin/classes"/>

只有加到這里才算真的把jar包添加進來。。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532011.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532011.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532011.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

設置熄屏_剛買的手機微信收不到信息提醒耽誤事情,手機到手一定要這樣設置...

手機使用過程中經常會遇到第三方軟件接收不到信息提醒的狀況,常常因此耽誤了很多重要的事情,造成損失。特別是剛換新手機或者手機剛升級系統時發生的最多。一般都覺得是手機問題,其實只是手機的系統設置出現了問題,只要跟我按照以…

java判斷對稱素數_SM2非對稱算法的原理及實現 Java SM2的代碼案例 | 一生孤注擲溫柔 | 小奮斗...

SM2橢圓曲線公鑰密碼算法:我國自主知識產權的商用密碼算法,是ECC(Elliptic Curve Cryptosystem)算法的一種,基于橢圓曲線離散對數問題,計算復雜度是指數級,求解難度較大,同等安全程度要求下,橢圓…

multipartfile 獲取音頻時長_抖音音頻下載捷徑:一鍵提取音頻,安卓+ios全通用,完全免費...

本文相關:抖音音頻提取、抖音音頻快捷指令、捷徑怎么獲取抖音音樂…昨天有抖友分享了一個抖音短視頻鏈接,告訴我,她很喜歡這個視頻里的歌曲,但是在很多歌曲app上面卻找不到相同的版本,然后就問我,有沒有什么…

python可以做特效嗎_學習mel語言,Python,JavaScript到什么程度才能做一下大型特效,要自已開發插件腳本呢?...

感謝邀請。首先自己要在某一方面要擅長,認準一個定位。比如android是鑰匙做前端應用軟件的,python可以做爬蟲及其人工智能,js做全段網頁,java主要是做后端的1、我們程序員對于開發軟件來說,無論你選擇的是那種語言&…

POJ2513-Colored Sticks

/*思路:類似圖論中“一筆畫”問題,兩根木棒的相連接的端點是一樣的顏色,(a,b)--(b,c)--(c, d)....方法:trie樹并查集, 利用trie樹建立字符串和某一個節點的映射,并將這些和字符串構成…

php windows共享內存,給PHP開啟shmop擴展實現共享內存

這篇文章主要介紹了關于給PHP開啟shmop擴展實現共享內存,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下在項目開發中,想要實現PHP多個進程之間共享數據的功能,讓客戶端連接能夠共享一個狀態&#xff0c…

導入ansys的實體怎么進行parameter_ANSYS在線纜線束設計中的仿真應用

ANSYS采用ANSYS Maxwell、Q3D、Twin Builder等電磁仿真軟件,從線纜線束設計、寄生參數RLCG提取、到系統電磁兼容提供了全面仿真分析。創建模型ANSYS在Maxwell軟件基礎上提出針對用戶定制化的“線纜線束設計工具包”,幫助客戶參數化建立特定幾何模型&…

怎么做95置信區間圖_這種動態的OD圖怎么做?簡單3步快速搞定

之前在視頻號中發過一個單車的出行數據可視化效果。動態展示了某天單車不同時段的運行情況,這種動態的OD可視化效果是如何制作的呢?使用的是kepler.gl進行制作的,其實非常簡單,3步即可快速搞定。一、數據軟件準備1、軟件制作這種動…

php抖音跳轉地址,PHP如何實現解析抖音無水印視頻

問題來源很多時候你在douyin里看到了一個短視頻,想復制下來自己編輯文字來發布,可是視頻里的水印卻是原者的。這個時候你想把水印去掉,你要如何做呢?這里提供PHP實現去除水印的主要方法,其實很簡單。使用方法&#xff…

php 分割二維數組,拆分二維數組 php

把以下數組拆分:{"errcode": 0,"msg": "成功","data": {"list": [{"ticket_no": "1","options": ["周四301","周四302","周四303"],"play_ty…

Dijkstra算法優先隊列實現與Bellman_Ford隊列實現的理解

1 /*2 Dijkstra算法用優先隊列來實現,實現了每一條邊最多遍歷一次。 要知道,我們從隊列頭部找到的都是到3 已經"建好樹"的最短距離以及該節點編號, 并由該節點去更新 樹根 到其他點(被更新的節點可以在隊列中4 ,也可以是…

php times33,PHP Hash算法:Times33算法代碼實例

最近看書,里面提到了一些Hash算法。比較有印象的是Times33,當時理解不是很透測,今天寫了段程序來驗證了一下。先上代碼:復制代碼 代碼如下:/*** CRC32 Hash function* param $str* return int*/function hash32($str){return crc3…

撿到vivo手機怎么清除賬號_為什么現在買手機,很少會去考慮OPPO和vivo呢?看一下老板怎么說...

不知道大家是否注意到,近年來OPPO和vivo的報道越來越少,而華為、榮耀和小米出現的頻率越來越高。此外,網絡上還有另外一個聲音,一個專業的機友朋友說,寧可選擇小米、OPPO和vivo,為什么熟悉自己手機的人不考…

php分析圖片中水印的位置,關于ThinkPHP打水印及設置水印位置的分析

這篇文章主要介紹了ThinkPHP打水印及設置水印位置的方法,結合實例形式分析了thinkPHP打印與設置水印的相關操作步驟與具體實現技巧,需要的朋友可以參考下本文實例講述了ThinkPHP打水印及設置水印位置的方法。分享給大家供大家參考,具體如下:最近在用Thin…

華為交換機命令_華為交換機常用命令

華為交換機常用命令:1、display current-configuration 顯示當前配置2、display interface GigabitEthernet 1/1/4 顯示接口信息3、display packet-filter interface GigabitEthernet 1/1/4 顯示接口acl應用信息4、display acl all 顯示所有acl設置 3900系列交換機5…

java中兩種添加監聽器的策略

/*第一種:將事件的處理委托給其他對象,下面的例子是委托給了MyListener(implements ActionListener)*/ 1 import java.applet.Applet;2 import java.awt.event.*;3 import java.awt.*;4 public class ChangeColor extends Applet{…

php dos命令用不了,windows下如何使用DOS命令強制復制文件

有的時候,我們可能需要替換某些目錄下的一些文件,手動去一個個目錄找的話,就會比較麻煩,這時候,就是我們程序員上場的時候了,程序雖然好寫,但是dos命令并不是每個人都玩的轉的,而且最…

java的棧圖形演示

1 import java.awt.*;2 import javax.swing.*;3 import java.awt.event.*;4 /*5 指示發生了組件定義的動作的語義事件。當特定于組件的動作(比如被按下)發生時,由組件(比如 Button)生成此高級別事件。6 事件被傳遞給每…

python播放本地視頻_python opencv 讀取本地視頻文件 修改ffmpeg的方法

Python opencv 讀取視頻的三種情況:情況一:通過攝像頭采集視頻情況二:通過本地視頻文件獲取視頻情況三:通過攝像頭錄制視頻,再讀取錄制的視頻攝像頭采集、本地視頻文件的讀取、寫視頻文件,網上都有代碼。我…

kali里PHP文件502錯誤,解決Linux Kali iptables開放22端口失敗等一系列問題

這篇文章是針對2020年下載安裝的kali系統碰到的關于 iptables開放22端口失敗等一系列問題的解決辦法,如果是其它系統,可以借鑒一下思路。各種報錯:# sudo systemctl start iptablesFailed to start iptables.service: Unit iptables.service …