當前位置:首頁 » 安卓系統 » android打成jar

android打成jar

發布時間: 2023-05-12 21:31:27

⑴ 如何將一個完整的Android工程打包成jar包

今天我教大慎粗家如果將Android工程打成Jar包的形式
工具/原料
Eclipse SDK jdk
方法/步驟
1
將一個Android的工程打成Jar包。右鍵工程--->Export

2
點擊java--->JAR file---->Next
步驟纖拿閱讀
3
勾選src包即可,其他項不選

4
點擊finishi即可,在D盤就可以看到library的jar包

5
其他應用程序引用就可以
END
注意事項
這個只是代碼類的達成jar包,不包含res資寬豎鎮源

⑵ android 項目如何打包成jar 使用

第一步,把普通的android project設置成庫項目

庫項目也是一個標準的android項目,因此你先創建一個普通的android項目。 這個項目可以起任何的名稱,任何的報名,設置其他需要設置的欄位等,如圖1所示。
接著把項目設置成庫項目,步驟如下
在Package Explorer中, 滑鼠右鍵項目文件夾,點擊 Properties.
在Properties 窗口, 選擇"Android" ,Library屬性顯示在右下邊.
把"is Library" 單選框選擇上,再點擊 Apply.(比如http://www.tiecou.com/)
點擊 OK 關閉Properties 窗口.
這時,這個項目就變成庫項目了。
當然,java項目也可以讓其變成一個庫項目,非常簡單,執行上面的四步。其他程序項目就可以引用庫項目了。

圖 1.使一個項目為庫項目
創建manifest文件
一個庫項目的manifest文件也和標準的android應用程序一樣,聲明所有共享的組件。
比如APIDemo中的TicTacToeLib 這個例子,庫項目聲明了Activity GameActivity:
<manifest>
...
<application>
...
<activity android:name="GameActivity" />
...
</application>
</manifest>

第二步 引用庫項目

如果你開發的應用程序想要包括庫項目中的代碼和資源,非常簡單,引用步驟如下
在Package Explorer中, 滑鼠右鍵項目文件夾,點擊 Properties.
在Properties 窗口, 選擇"Android" ,Library屬性顯示在右下邊.
點擊Add ,打開了Project Selection對話框.
從可用庫項目列表選擇一個項目,然後點擊 OK.
對話框關閉之後點擊 Apply (在Properties窗口).
點擊 OK 關閉Properties 窗口.
完成以上六步,Eclipse 會重建項目,把庫項目中的內容包含進去。 如圖2所示

圖 2.讓項目引用一個庫項目
如果你想增加多個庫項目的引用,使用up和down可以設置他們的相對的優先順序和合並順序。工具在合並引用的庫的時候順序是從低優先順序(列表的下面)到高優先順序(列表的上面)。 如果不只一個庫定義了相同的資源ID,這個工具選擇資源時會選擇高優先順序的資源。應用程序自身擁有最高的優先順序,自身的資源zThe application itself has highest priority and its resources are always used in preference to identical resource IDs defined in libraries.

在menifest文件中聲明庫中的組件
在manifest文件中必須增加對在當前程序中用到的庫項目中的所有的組件。比如,你必須聲明任何用到的 <activity>, <service>, <receiver>, <provider>等,<permission>, <uses-library>,和其他類似的元素。
聲明庫項目中的組件時,必須使用包含包名的類全名。
在TicTacToeMain例子中,聲明庫Activity GameActivity :
<manifest>
...
<application>
...
<activity android:name="com.example.android.tictactoe.library.GameActivity" />
...
</application>
</manifest>

⑶ 如何使用Android Studio打包混淆的Jar

使用AS打包混淆Jar包,網路一下,一片一片的,但是很多都是零零散散的寫得不是很詳細或是直接拷貝,按照他們的教程測試總不是很順利,所以這里我就把我個人學習AS打包混淆Jar的成果總結出來,希望對大家有幫助。個人覺得寫得還是比較詳細的

使用gradle混淆打包Jar

使用AS開發項目,引入第三方庫是非常方便的,我們只需要在build.gradle中配置一行代碼就可以輕松引入我們需要的開發庫。那麼gradle可以幫我們混淆打包Jar嗎?答案是當然可以!

那麼我們如何打包Jar呢?其實我們在編譯項目的時候,AS已經幫我們在目錄build/intermediates/bundles/release/classes.jar打好了Jar。那麼我們需要做的就是把Jar進行混淆的工作了。這里以個人項目bannerDemo為例,混淆步驟如下:

在你的library的build.gradle文件中加入如下代碼:

task makeJar(type: proguard.gradle.ProGuardTask, dependsOn: "build") {
// 未混淆的jar路徑
injars 'build/intermediates/bundles/release/classes.jar'
// 混淆後的jar輸出路徑
outjars 'build/outputs/cocolove2-banner-1.1.0.jar'
// 混淆協議
configuration 'proguard-rules.pro'}

配置混淆協議

1.我們先把AS自帶的協議配置進來中文注釋,筆者添加

# This is a configuration file for ProGuard.# http://proguard.sourceforge.net/index.html#manual/usage.html## Starting with version 2.2 of the Android plugin for Gradle, these files are no longer used. Newer# versions are distributed with the plugin and unpacked at build time. Files in this directory are# no longer maintained.#表示混淆時不使用大小寫混合類名-dontusemixedcaseclassnames#表示不跳過library中的非public的類-#列印混淆的詳細信息-verbose# Optimization is turned off by default. Dex does not like code run# through the ProGuard optimize and preverify steps (and performs some# of these optimizations on its own).-dontoptimize##表示不進行校驗,這個校驗作用 在java平台上的-dontpreverify# Note that if you want to enable optimization, you cannot just# include optimization flags in your own project configuration file;# instead you will need to point to the# "proguard-android-optimize.txt" file instead of this one from your# project.properties file.-keepattributes *Annotation*
-keep public class com.google.vending.licensing.ILicensingService-keep public class com.android.vending.licensing.ILicensingService# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native-keepclasseswithmembernames class * {
native <methods>;
}# keep setters in Views so that animations can still work.# see http://proguard.sourceforge.net/manual/examples.html#beans-keepclassmembers public class * extends android.view.View {
void set*(***);
*** get*();
}# We want to keep methods in Activity that could be used in the XML attribute onClick-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}

-keepclassmembers class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator CREATOR;
}

-keepclassmembers class **.R$* {
public static <fields>;
}# The support library contains references to newer platform versions.# Don't warn about those in case this app is linking against an older# platform version. We know about them, and they are safe.-dontwarn android.support.**# Understand the @Keep support annotation.-keep class android.support.annotation.Keep-keep @android.support.annotation.Keep class * {*;}-keepclasseswithmembers class * {
@android.support.annotation.Keep <methods>;
}

-keepclasseswithmembers class * {
@android.support.annotation.Keep <fields>;
}

-keepclasseswithmembers class * {
@android.support.annotation.Keep <init>(...);
}

2.AS自帶的配置文檔還是不夠的,我們還需要加入如下配置
這里只展示基本操作,在實際開發中可能需要更多依賴,要根據具體情況引入自己需要的依賴包

#下面代碼中的xx是指我個人的配置路徑,涉及個人信息,這里以xx代替
#引入依賴包rt.jar(jdk路徑)
-libraryjars /xxx/xx/xx/jdk1.8.0_77.jdk/Contents/Home/jre/lib/rt.jar
#引入依賴包android.jar(android SDK路徑)
-libraryjars /xx/xx/xx/Android/sdk/platforms/android-24/android.jar
#如果用到Appcompat包,需要引入
-libraryjars /xxx/xxx/xx/xxx/MyApplication/library-banner/build/intermediates/exploded-aar/com.android.support/appcompat-v7/24.1.1/jars/classes.jar
-libraryjars /xx/xx/xx/xx/MyApplication/library-banner/build/intermediates/exploded-aar/com.android.support/support-v4/24.1.1/jars/classes.jar

#忽略警告
-ignorewarnings
#保證是獨立的jar,沒有任何項目引用,如果不寫就會認為我們所有的代碼是無用的,從而把所有的代碼壓縮掉,導出一個空的jar
-dontshrink
#保護泛型
-keepattributes Signature

3.加入自己不想混淆的配置根據實際需求配置

-keep class com.cocolove2.library_banner.view.**{*;}

在命令行執行命令混淆Jar,提示BUILD SUCCESFUL表示成功!

//mac./gradlew makeJar//windowsgradlew makeJar

示例展示

  • 我這里以混淆library-banner庫為例

  • 1.首先我們要看看下我們的buildTool的配置,如下圖:


    [email protected]

    混淆報錯解決辦法個人遇到的

  • #log提示缺少依賴Jar,或者路徑不對


  • 解決辦法:乖乖的引入缺少的依賴jar和修改路徑

  • #提示如下異常[INFO] java.io.IOException: Can't read [D:Program

  • FilesJavajdk1.8.0_91jrelib t.jar] (Can't process class [com/oracle/net/Sdp$1.class] (Unsupported class version number

  • [52.0] (maximum 51.0, Java 1.7)))


  • 解決辦法:

  • 下載最新proguard(支持Java 8的版本),然後將下載的文件解壓

  • 將andorid sdk/tools/proguard/lib中的jar包,替換為剛下載解壓文件中的lib包。

  • proguard5.2.1下載地址

  • 閱讀

⑷ AndroidStudio 打包生成Jar包

在開發當中,有一些功能我們是不依頌鉛顫賴任何Res 資源的,這野敗個時候我們就可以直接提供業務方jar 包,以避免當中出現一些冗餘資源如AAR。下面就 AndroidStudio 3.5.2 版本生成jar 包方式作出筆記。

新建model 就不在此過多贅述。該model是Library 而不是 application。

大家注意 from('build/intermediates/packaged-classes/release/') 這個是 3.+ 版本激粗是這樣。2.3 版本呢就不在是該目錄了。這也是在實際測時當中遇到的錯誤問題。

最終執行 makeJar gradle 任務即可,生成jar 包。

⑸ 如何將AndroidStudio項目打包成jar包並使用

成功後:

在需要使用的工程中,添加jar包到libs目錄中,右擊 Add as Library 即可

可以看到這邊可以正常使亂櫻用之前創建遲陪沖的加法運算了

在創建jar的同時會生成一個 arr包 ,同碼殲樣也可以使用

⑹ 怎麼將android代碼打包成jar

高端cmd的方法我這里就不說了

我這里主要講的是Eclipse的生成jar的方法。

在要打包的項目上右擊,選擇Export(點擊項目 導出)

因為我的Eclipse導入了中文語言包。
(可以搜索 「Eclipse手動安裝中文包(手動安裝)」這個是我以前的經驗)

生成包有兩種
打包成一般的jar包 (jar文件)
打包成可運行的jar包

我說的是第一種。

下一步如圖

要注意的地方

只勾選「導出生成的類文件和資源」

生成設置的其他選項(可以直接完成生成的)

生成完成。
如果代碼中有警告,會彈出這個對話框。(其實jar還是生成成功了)

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:336
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:378
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:612
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:32
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:945
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:742
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:803
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:511
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:372