在你的android工程下面建一個libs文件夾,然後把第三方jar包拷貝進去。
右鍵點擊libs文件夾,選擇Build Path —— Use as Source Folder
再運行試試。
㈡ 求解答,Android源碼編譯時怎的添加第三方jar包
Android.mk添加第三方jar包
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_STATIC_java_LIBRARIES := xsocket jackson-mapper logging jackson-core javatar log4j
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := test
LOCAL_CERTIFICATE := platform
include $(BUILD_PACKAGE)
##################################################
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := xsocket:lib/xSocket-2.8.14.jar \
jackson-mapper:lib/jackson-mapper-asl-1.6.2.jar \
logging:lib/commons-logging.jar \
jackson-core:lib/jackson-core-asl-1.6.2.jar \
javatar:lib/javatar-2.5.jar \
log4j:lib/log4j-1.2.15.jar
include $(BUILD_MULTI_PREBUILT)
# Use the folloing include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))
以上是我的一個項目中所需要的第三方jar包,主要參考了Android源碼中的Calculator應用,該應用也引用了一個第三方的jar包arity-2.1.2.jar。
需要注意的是,當你要引用的jar包不止一個時,有兩個關鍵的地方需要注意的。
LOCAL_STATIC_JAVA_LIBRARIES := xsocket jackson-mapper logging jackson-core javatar log4j
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := xsocket:lib/xSocket-2.8.14.jar \
jackson-mapper:lib/jackson-mapper-asl-1.6.2.jar \
logging:lib/commons-logging.jar \
jackson-core:lib/jackson-core-asl-1.6.2.jar \
javatar:lib/javatar-2.5.jar \
log4j:lib/log4j-1.2.15.jar
xsocket jackson-mapper logging jackson-core javatar log4j這幾個只是名字,可以隨便取。LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES後面才是真正其作用的地方。如:
xsocket:lib/xSocket-2.8.14.jar 引用的是lib目錄中的xSocket-2.8.14.jar。
還要注意的是 := 不要寫成了+=了哦。
附:編寫各種類型的Android.mk,出處我忘記了,是以前瀏覽是拷貝下來的。
一、編譯一個簡單的APK
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Build all java files in the java subdirectory
LOCAL_SRC_FILES := $(call all-subdir-java-files)
# Name of the APK to build
LOCAL_PACKAGE_NAME := LocalPackage
# Tell it to build an APK
include $(BUILD_PACKAGE)
二、編譯一個依賴靜態.jar文件的APK
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# List of static libraries to include in the package
LOCAL_STATIC_JAVA_LIBRARIES := static-library
# Build all java files in the java subdirectory
LOCAL_SRC_FILES := $(call all-subdir-java-files)
# Name of the APK to build
LOCAL_PACKAGE_NAME := LocalPackage
# Tell it to build an APK
include $(BUILD_PACKAGE)
註:LOCAL_STATIC_JAVA_LIBRARIES 後面應是你的APK程序所需要的JAVA庫的JAR文件名。
三、編譯一個需要platform key簽名的APK
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Build all java files in the java subdirectory
LOCAL_SRC_FILES := $(call all-subdir-java-files)
# Name of the APK to build
LOCAL_PACKAGE_NAME := LocalPackage
LOCAL_CERTIFICATE := platform
# Tell it to build an APK
include $(BUILD_PACKAGE)
註:LOCAL_CERTIFICATE 後面應該是簽名文件的文件名
四、編譯一個需要特殊vendor key簽名的APK
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Build all java files in the java subdirectory
LOCAL_SRC_FILES := $(call all-subdir-java-files)
# Name of the APK to build
LOCAL_PACKAGE_NAME := LocalPackage
LOCAL_CERTIFICATE := vendor/example/certs/app
# Tell it to build an APK
include $(BUILD_PACKAGE)
五、裝載一個普通的第三方APK
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Mole name should match apk name to be installed.
LOCAL_MODULE := LocalMoleName
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := platform
include $(BUILD_PREBUILT)
六、裝載需要.so(動態庫)的第三方apk
LOCAL_PATH := $(my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := input_android_v1.1_1000e
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := platform
include $(BUILD_PREBUILT)
#################################################################
####### the library to /system/lib #########################
#################################################################
include $(CLEAR_VARS)
LOCAL_MODULE := libinputcore.so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)
LOCAL_SRC_FILES := lib/$(LOCAL_MODULE)
OVERRIDE_BUILD_MODULE_PATH := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)
include $(BUILD_PREBUILT)
七、編譯一個靜態java庫
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Build all java files in the java subdirectory
LOCAL_SRC_FILES := $(call all-subdir-java-files)
# Any libraries that this library depends on
LOCAL_JAVA_LIBRARIES := android.test.runner
# The name of the jar file to create
LOCAL_MODULE := sample
# Build a static jar file.
include $(BUILD_STATIC_JAVA_LIBRARY)
註:LOCAL_JAVA_LIBRARIES表示生成的java庫的jar文件名。
㈢ 如何將第三方jar包編譯成一個jar
可以建一個maven工程在pom中引入這些jar,然後將工程打包成jar
㈣ 怎麼添加使用第三方jar包及無法編譯的問題解決方法
1、將jar包放入項目里的libs文件夾中。
2、在project選中jar包點擊右鍵"Add as library"。
3、這兩步是網上比較容易找到的,但此時項目仍然是無法正常編譯的,這時需要在項目的build.gradle文件里的dependencies節加入 dependencies
{
compile files('libs/android-support-v4.jar')
compile files('libs/xxxx.jar')
}
4、此時項目正常編譯並運行了,但當你的代碼中真正創建了引用jar里的類實例時,有可能系統會拋出異常NoClassDefFoundError,這個時候可以按以下步驟操作:
進入命令提示符窗口。
㈤ 如何在java中使用別人提供的jar包進行導入,編譯,運行
右點工程里建一個folder,把jar拖進去,右點拖進來的jar,build path→add
㈥ java有依賴的jar 怎麼編譯
手動導入相應的jar包,找到需要的類(如果用IDE工具的話,自動import)然後import進去,就可以正常編譯和實現對應的功能。
㈦ 如何在插件開發中正確使用第三方jar包
在一般插件項目中添加第三方jar包:
1. 創建你的插件項目,並新建一個文件夾放置你需要的第三方jar包,如:<project>/lib。
2. 從文件系統中導入或拷貝jar包至<project>/lib文件夾中,如:<project>/lib/activation.jar。
3. 打開MANIFEST.MF文件,在插件編輯器的"Runtime"Tab頁中,把第三方jar包添加到"Classpath"面板中。
4. 如果該插件需要被其他插件依賴,則需要在插件編輯器的"Runtime"Tab頁中,在"Exported Packages"面板中添加所有允許訪問的包。
通過圖形界面編輯器配置後的MANIFEST.MF文件如下:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Primeton Studio EosTest Core Plug-in
Bundle-SymbolicName: com.primeton.studio.eostest.core
Bundle-Version: 6.0.0
Bundle-Vendor: %Primeton
Bundle-Localization: plugin
Bundle-ClassPath: lib/activation.jar,
lib/jaxb-api.jar,
lib/jaxb-impl.jar,
lib/jsr173_1.0_api.jar
Export-Package: com.primeton.studio.eostest.core,
com.primeton.studio.eostest.core.model.cut,
...
javax.activation,
javax.xml.bind,
javax.xml.bind.annotation,
javax.xml.bind.annotation.adapters,
javax.xml.bind.attachment,
javax.xml.bind.helpers,
javax.xml.bind.util,
javax.xml.stream,
javax.xml.stream.events,
javax.xml.stream.util
Require-Bundle: com.primeton.studio.runtime,
org.eclipse.core.resources
構建插件項目:
5. 打開build.properties文件,在插件編輯器的"Build"Tab頁的"Binary Build"面板中,選中需要構建的內容。
生成的build.properties文件如下:
output.. = bin/
bin.includes = META-INF/,\
plugin.xml,\
lib/jaxb-api.jar,\
lib/jaxb-impl.jar,\
lib/jsr173_1.0_api.jar,\
lib/activation.jar,\
plugin.properties,\
plugin_zh_CN.properties
src.includes = META-INF/,\
src/,\
plugin.properties,\
plugin.xml,\
plugin_zh_CN.properties,\
build.properties
在插件項目B中引用一個插件項目A的類:
6. 首先,需要保證該類所在的包在插件A的MANIFEST.MF文件Export-Package:中,如上步驟4。
7. 其次,打開插件項目B的MANIFEST.MF文件,在插件編輯器的"Dependencies"Tab頁中,把插件項目A添加到"Required Plug-ins"面板中。如果僅僅是在插件項目B的"Java Build Path"添加了插件項目A,則運行時肯定會出現運行時"NoClassDefFoundError"問題。
導出插件項目:
8. 選中插件項目,在導出向導里選中"Deployable plug-ins and fragments"選項導出。
9. 導出的插件分為三種形式,文件夾、zip包、jar包。導出的內容包括在上面插件項目構建步驟中,build.properties文件bin.includes中選中的內容。
10. 其中jar包的形式需要在"Options"選項里選中"Package plug-ins as indivial JAR archives"選項。
將第三方jar包單獨包裝成一個插件項目:
另外對於項目中使用到大量的第三方jar包時,可以採用eclipse官方推薦的方式,把第三方jar單獨包裝成一個插件項目。
按Ctrl+N,在新建對話框里選擇"Plug-in from existing JAR archives",按下一步選擇你需要的jar文件。
再下一步指定這個plugin的名稱,注意這一步里一般要把最下面的"Unzip the JAR archives into the project"選項清除,否則eclipse會把jar文件全部展開為.class文件樹,最後按Finish就可以了。
㈧ jar中有第三方jar包怎麼使用
首先打開Eclipse/MyEclipse,如下圖所示:
在需要導入ojdbc6.jar包的項目上右鍵單擊,依次選擇「New」---->「Folder」,如下圖所示:
在打開的「New Folder」窗口中,輸入文件夾的名稱,文件夾的名稱隨意,按照慣例,通常命名為「lib」,點擊「finish」完成,如圖所示:
這樣,就在項目下創建了一個名稱為lib的文件夾,如下圖所示:
然後「Ctrl+C」復制准備好的ojdbc6.jar,選中lib文件夾,按「Ctrl+V」粘貼,把jar包粘貼到lib文件夾中,如下圖所示:
在粘貼進來的jar包上右鍵單擊,依次選擇「Build Path」--->"Add To Build Path",如下圖所示:
出現下圖所示情況時,就表示jar包導入成功了,接下來就可以在你的程序中使用該jar包了。開始愉快的coding吧!
㈨ 一個java程序用到了很多jar包,如何用命令行形式來編譯、運行此程序
如果只有一個類的話
需指定關聯jar的classpath
javac
-cp
jars
類
如果多個文件,這個是沒法用命令行動態編譯的
除非你一個個指定