Android檢視jar包原始碼問題
在Eclipse中開發android的應用程式時,有時想檢視函式的內部實現,但是當在函式上點選ctrl和滑鼠左鍵的時候,
往往出現如下提示:
Class File Editor
Source not found
The JAR of this class file belongs to container 'Android' which does not allow modifications to source attachments on its entries.
因此按照如下操作新增對應的原始碼:
選擇workspace 裡面的專案,點選右鍵--->Build Path-->configure build path -->liberaries-->選擇一個jar包--->點選左側的展開三角按鈕--->
展開後選擇Source attachment --->點選右側的 Edit 按鈕--->彈出對話方塊,並選擇External File---->找到指定的原始檔壓縮包。或者可使用外部原始檔目錄。點選OK。
進去以後發現還是不能檢視,同樣的提示!
仔細讀英文的後半部分,在libs中直接引用的第三方jar包不讓其做任何修改。包括新增原始檔參看。
因此在android工程下新建一個lib目錄,將jar包從libs轉移到lib中。然後重複以上過程。
結果就可以查看了!不過一執行你的程式,馬上報錯無法找到class的錯誤。 = =! 死衚衕了~
看來只能將第三方jar放到libs了。
有的牛人這樣解決了:
In order to link the sources and javadoc to a .jar library that is automatically linked by Eclipse you have to do the following.
- Place all three .jar files in the libs folder.
-
Create
.properties
file in the libs folder with the name of the library .jar (see example). - Specify the relative paths to the sources and javadoc .jar in the .properties file.
- Close and re-open the Eclipse project! Optionally refresh the project.
- Select an object of the linked library in the source code.
- Open the Javadoc view in Eclipse to check the documentation (see screenshot).
- Open the source code declaration (default shortcut: F3) of the selected object.
<code style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif;"><span class="str" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent; color: rgb(128, 0, 0);">/libs/</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">gson</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">-</span><span class="lit" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent; color: rgb(128, 0, 0);">2.2</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">.</span><span class="lit" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent; color: rgb(128, 0, 0);">2.jar</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;"> </span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">/</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">libs</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">/</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">gson</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">-</span><span class="lit" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent; color: rgb(128, 0, 0);">2.2</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">.</span><span class="lit" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent; color: rgb(128, 0, 0);">2.jar</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">.</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">properties </span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">/</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">libs</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">/</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">gson</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">-</span><span class="lit" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent; color: rgb(128, 0, 0);">2.2</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">.</span><span class="lit" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent; color: rgb(128, 0, 0);">2</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">-</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">javadoc</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">.</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">jar </span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">/</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">libs</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">/</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">gson</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">-</span><span class="lit" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent; color: rgb(128, 0, 0);">2.2</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">.</span><span class="lit" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent; color: rgb(128, 0, 0);">2</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">-</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">sources</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">.</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">jar</span></code>
Contents of gson-2.2.2.jar.properties
<code style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif;"><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">src</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">=</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">gson</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">-</span><span class="lit" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent; color: rgb(128, 0, 0);">2.2</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">.</span><span class="lit" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent; color: rgb(128, 0, 0);">2</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">-</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">sources</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">.</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">jar doc</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">=</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">gson</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">-</span><span class="lit" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent; color: rgb(128, 0, 0);">2.2</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">.</span><span class="lit" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent; color: rgb(128, 0, 0);">2</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">-</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">javadoc</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">.</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">jar</span></code>
You can of course move the javadoc and sources .jar into other folders and specify relative paths. That's up to you.
但是遺憾的是,弄了半天都沒能解決。可能也跟我用的第三方的jar包不規範的原因,而且我沒有doc檔案。
最終,我想到了一個解決辦法:
新建一個lib目錄
將需要的jar包全部拷貝到該目錄下
依次對每個jar包執行 上面綠色 部分操作
完成後右鍵lib目錄,點選build path--> use as source folder
即可解決檢視原始碼的問題,也可使程式正常執行。
在Eclipse中開發android的應用程式時,有時想檢視函式的內部實現,但是當在函式上點選ctrl和滑鼠左鍵的時候,
往往出現如下提示:
Class File Editor
Source not found
The JAR of this class file belongs to container 'Android' which does not allow modifications to source attachments on its entries.
最普遍常見的是android-support-v4沒法看到其中的註釋和原始碼,滑鼠放到類上提示:
Note: This element neither has attached source nor attached Javadoc and hence no Javadoc could be found.
一般來說如果環境配置好了,Android的所有類和所有方法都能看到其程式碼和註釋,以下分兩步,將註釋和程式碼全部配置正確。
1.Android本身jar包的原始碼
這裡假設已經把需要下載的都下載下來了,右鍵專案====》build path====》configure build path
在libraries裡選擇Android x.x.x裡面有Android.jar,這就是開發時所依賴的Android本身的sdk的jar包,點開,裡面有兩個需要配置,
source attachment和javadoc location,前者是原始碼,配置好後可實現ctrl+滑鼠左鍵直接點開想看的Android的類,
後者是原始碼的註釋檔案,配置好後可實現滑鼠放在想看到類上,會顯示出來這個類或者方法的介紹
選擇source attachment配置項,點選右邊edit,選擇external location===》external folder,然後找到正確的路徑,我的是在E:/eclipse/sdk/sources/android-19
選擇javadoc location配置項,edit,選擇javadoc url===》browse,然後找到正確路徑,我的是在file:/E:/eclipse/sdk/docs/reference
完成上面這些就可以正常檢視Android內部常用的類註釋和原始碼了
2.檢視外部依賴jar包的原始碼
這裡假設你已經把外部依賴的jar包正確匯入並且編譯通過了,但是ctrl+滑鼠左鍵想看程式碼或者想看其註釋卻不可行的情況,
首先在libs下面找到引入的包,這裡以android-support-v4.jar為例,
在libs下新建android-support-v4.jar.properties檔案,即與引用的jar包同名最後加上.properties的檔案
其內容如下:
src = E:\\eclipse\\sdk\\extras\\android\\support\\v4\\src
這裡路徑要根據你自己的路徑進行調整,配置之後退出eclipse,在進入,就可以正常查看了。
作者:jason0539
相關推薦
Android檢視jar包原始碼問題
在Eclipse中開發android的應用程式時,有時想檢視函式的內部實現,但是當在函式上點選ctrl和滑鼠左鍵的時候, 往往出現如下提示: Class File Editor Source not found The JAR of this class fil
Android專案匯入jar包——Android檢視Jar包的原始碼——配置
一、Jsoup 的 jar包的匯入和jsoup 的原始碼檢視。 類似【android-support-v4.jar】 (1)Jsoup匯入: 將包直接放入libs目錄下,系統會自動識別——不用修改Build Path! 使用jsoup不需要新增許可權,只是訪問網頁讀取儲
eclipse檢視jar包原始碼亂碼問題解決
今天在eclipse中檢視java的jar包中的原始碼時,顯示的全部是亂碼。起初只設置了content types還不行,還是亂碼。不過問題最後解決了,配置步驟如下: 首先要知道你需要配置的編碼格式,比如jar包的原始碼編碼格式是GBK的。那麼我們則配置為GBK。 步驟1
Eclipse線上安裝JD-Eclipse反編譯外掛用於檢視jar包原始碼
開啟eclispe,在eclipse的選單欄上選擇Help->Install New Software 2,點選Install New Softeware,進入如下視窗。 3,在對話方塊中點選add按鈕,然後在彈出的對話方塊中
eclipse 檢視jar包原始碼兩種方式
我們檢視jar原始碼時,一般是安裝個jd-gui,把jar拷出來,然後從jd-gui中開啟jar再檢視原始碼,這個過程不免有些麻煩,當然,本篇所講的快速檢視的方法也沒什麼高科技手段,只是將jd-gui整合在Eclipse中,然後就可以在Eclipse中直接開啟class了,這
Android studio 不能檢視 support包原始碼
there are some combinations if libraries,that are incompatible,or can lead to bugs, One such incompatibility is compiling with a version of the androi
eclipse如何檢視jar包的原始碼
方法:將jd-gui整合在Eclipse中 步驟: 1、下載jd-gui外掛,我這裡下載的是:jd-eclipse-site-1.0.0-RC2 2、執行eclipse,選擇選單欄Help-->Install New Software 3、在右側視窗,選擇Add-
解決Eclipse,STS檢視第三方jar包原始碼問題
我們再用編譯工具的時候,如果不配是我們是看不了第三方jar包的原始碼,只能看到jdk自帶jar包原始碼。下面我們來解決這個問題。 解決方法: 1、jar包下都為編譯生成的 .class 檔案,所以安裝相應的反編譯外掛,反編譯為 .java 檔案後,即可檢
解決jad.exe檢視外部jar包原始碼失敗問題
上面這個網址說的非常詳細,我提幾個重點注意的地方:1.刪除eclipse的安裝目錄下configuration目錄下org.eclipse.update檔案,如果不刪除,就算配置完全正確也沒有用。2.需要兩次重新啟動,第一次是將net.sf.jadclipse_3.3.0.j
Eclipse中如何快速檢視jar包中 的class原始碼(將jd-gui整合在Eclipse中)
1、開啟eclispe,在eclipse的選單欄上選擇Help->Install New Software 2,點選Install New Softeware,進入如下視窗。3,在對話方塊中點選add按鈕,然後在彈出的對話方塊中輸入名字和下載連結(因為它在下載,時間可能
如何檢視 JAR 包的原始碼
Java 專案的編譯檔案經常被打包成 JAR(Java Archive,Java 歸檔檔案)檔案,當然,作為學習,有時候也非常想看到這個 JAR 被打包前的原始碼是怎麼樣的。 下面提供幾種檢視 JAR 包的原始碼方式。 環境 JDK 7+ Mav
Android封裝jar包,把當前專案設定成module,封裝手機振動jar包給unity呼叫
Android封裝jar包或者把當前專案設定成module操作步驟都一樣,此處以手機振動為例,封裝jar包給Unity平臺使用,具體如下: Android部分: 1.建立unity要呼叫的手機振動的類:PhoneVibrate package com.lin.phonevibrate;
Eclipse中新增Android系統jar包
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Android 封裝jar包,反射機制獲取資源
public class ResourceUtil { public static int getLayoutId(Context paramContext, St
javap命令檢視jar包class編譯版本
版本對照如下: Java 1.2 uses major version 46 Java 1.3 uses major version 47 Java 1.4 uses major version 48 Java 5 uses major version 49 Jav
eclipse自動下載jar包原始碼
maven(推薦) maven可以用於專案對jar包的依賴關係的管理以及class, src, javadoc的下載。 Apache Maven is a software project mana
[Android] 解決android多jar包R衝突問題
【問題描述】 今天在開發專案時,遇到一個詭異的問題:一個App工程下明明有a.xml檔案,但在OnCreate回撥裡進行 setContentView設定對應的layout時,卻一直顯示找不到對應的資源。開始以為是沒有重新編譯造成衝突引起 的,後來重新編譯了整個工程還是存在
linux檢視jar包內檔案命令
jar vtf fileName.jar 用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...選項包括: -c 建立新的歸檔檔案 -t 列出
Android studio jar包生成方式
Right im not sure if it will work for others but worked for me. I changed proxyPort to 8080 and used jcenter instead of Maven. But i had to apply expeptio
Android 以jar包方式共享資源注意事項
最近的一個專案是一個Android系統的系統應用的重構開發,專案中有很多個應用,這些 應用有許多相同的介面和互動;另外,這一套應用的介面可能會需要經常調整來適配不同的客戶需求。為了減少開發和維護的工作