A. 如何從android source code中匯出JAR供SDK使用
需要在linux下面編譯源碼 生成新的class.jar供你使用 並且生成的img文件還李神運需要哪梁燒錄瞎伍到設備裡面
B. android studio裡面導入的jar會報這樣的錯誤Source not found,是什麼問題
1、將jar包放入項目里的libs文件夾中。 2、在project選中jar包點擊右鍵"Add as library"。 3、這兩步是網上比較容易找爛橘到飢鉛團的,但此時項目仍然是無法正常編譯的,這時需要在項目的build.gradle文件里激液的dependencies節加入 dependencies
C. android 怎麼把多個so文件編譯成jar
一共分為2步:
1.在java中編寫要調用的靜態方法和需要載入的庫,並生成頭文件。
2.配置gradle
3.配置Android.mk文件和application.mk文件
下面一步步的走:
首先需要在Java類中聲明要調用的方法,以及要載入的庫,我們在包下新建一個jniUtil類,如下所示
[plain]view plain
publicclassjniUtil{
//要載入的庫,生成的庫格式為:lib+庫名.so
static{System.loadLibrary("hello-jni");}
//要調用的本地方法,在c文件中該方法名稱格式為:java_包名_類名_方法名
();
}
注意:在編譯時該類中不能有漢字,包括注釋,否則會出現編碼GBK的不可映射字元錯誤。
接下來就是利用external Tools生成頭文件.h,這里可參考點擊打開鏈接
然後就會在main目錄下生成Jni文件夾,並且包含.h文件。下面就是編寫C文件,或者可以拷貝已經寫好的C文件放置在該jni文件夾中.
2.配置gradle
我們這里不用gradle 去編譯,而是只讓他去載入已經生成的so庫,改用android.mk 去編譯(稍後配置android.mk)
在app的build.gradle 下的android 標簽下添加:
[plain]view plain
sourceSets{
main{
jni.srcDirs=[]//禁止gradle自動編譯,使用已經編譯好的So庫
jniLibs.srcDirs=['src/main/jniLibs','libs']//指向要使用的庫文件//的路徑,前邊的是自己項目的,後邊的是第三方的so
}
}
從上面可以看出,我們生成的庫是放在
src/main/jniLibs
目錄下面的,那麼這個是如何配置呢?還是在該gradle下面配置ndk的編譯腳本,注意放在android標簽外面:
[plain]view plain
tasks.withType(JavaCompile){
compileTask->compileTask.dependsOnCopyToJniLibs
}
taskndkBuild(type:Exec,description:'CompileJNIsourceviaNDK'){
Propertiesproperties=newProperties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
defndkDir=properties.getProperty('ndk.dir')
commandLine"$ndkDir/ndk-build.cmd","NDK_PROJECT_PATH=$projectDir.absolutePath\build","APP_BUILD_SCRIPT=$projectDir.absolutePath\src\main\jni\Android.mk","NDK_APPLICATION_MK=$projectDir.absolutePath\src\main\jni\Application.mk"
//你自己的mk文件目錄
}
在ndkbuild完成後把生成的so文件復制到jniLibs,這里和上面配置的載入so文件路徑要一致哦
[plain]view plain
taskCopyToJniLibs(type:Copy,dependsOn:'ndkBuild',description:'thenativelibstojniLibs'){
fromfileTree(dir:file(buildDir.absolutePath+'/libs'),include:'**/*.so')
intofile('src/main/jniLibs')
}
新建Android.mk和application.mk,這里我把Android.mk和application.mk放在jni文件夾下了,具體可以自己修改。默認生成的SO文件會在build下面的libs中,我們拷貝出來放到src/main/jniLibs下面。
3.配置Android.mk和Application.mk
D. android studio 怎麼進入source源碼
在build.gradle中添加jar依賴:
Rebuild後點進jar庫中的某個*.class文件,然後看右上角(是不是發現了Attach Sources選項):
根據2中的步驟選擇XX.source.jar即可綁定源碼(或者選森基亮擇src源碼存鋒缺放目錄)
除了上面的方法,還此寬可以使用手動導入的方式:
詳細解答
E. 怎樣查看 Android APP 源代碼
用壓縮軟體打開apk文件,解壓出根目錄中的classes.dex文件
使用cmd ,dex2jar.bat classes.dex命令將classes.dex轉換為jar
再用jd-gui打開該jar就可以查看源碼了,如果apk安全性好的話,有些代碼是看不到的
F. intellij idea 打包的android source jar的包為什麼沒有meta-inf
Eclipse下打包源碼jar還是很方便的,IDEA下就沒有那麼快捷的方法了,需要手動建立Artifact。對於我這種開源癖患者,斷然無法接受看不到源碼的binary。特別是遇到Lucene這樣的重量級類庫,總是好奇裡面發生了些什麼,並且時不時需要查看方法的注釋。
像Lucene這樣的Apache項目一般採用Ant編譯,編譯腳本里就附帶了source-jar選項,稿中如果項目里沒有這個項目鍵答山,就需要參照下面的步驟手動建立。
在Project Structure頁面,新建一個Empty的Artifact:
接著編譯,編譯完成之後就可以在_source下找到名為crawler4j_source.jar的源舉清碼包了。
G. android 怎麼修改第三方jar包
一、下載jd-gui.exe反編譯工具。
二、用jd-gui.exe打開你的第三方jar包,這邊以新浪微博sdk(weibo_sdk.jar)為例說明,打開weibo_sdk.jar
三、修改WeiboDialog文件中的內容,如上圖一樣選中WeiboDialog,然後點擊file--》save source--》保存到桌面產生WeiboDialog.java文件
四、用記事本或source Insight 打開進行修改,修改完後保存。
五、新建一個工程,並且新建一個與WeiboDialog文件所在package一致的package,然後把WeiboDialog.java文件拷貝到新建的package中
六、若 WeiboDialog.java 拷貝進去有錯誤,則先修復錯誤,然後clean一下工程(工具欄 project --》clean)
七、找到工程所在目錄中的bin\classes\....,會生成你修改後的文件的.class文件,復制到你的第三方jar所在目錄。
八、用WinRAR打開你的第三方jar,替換jar中相同的該文件,ok完成!
H. android 項目如何導出帶源碼的jar包
用rar壓縮軟體都可以打開的
I. android調試時遇到source not found 如何解決,求解決~!
source not found一般的錯誤原因是引用的jar包沒有導入到你的工程裡面。
解決方含消案是:如果工程文件夾顯示帶叉的箭頭,散老孝則表示某個類或者沖稿缺少必要的jar包,這個時候你可以點開出錯的文件夾,打開某個類,如果對著提示沒有顯示錯誤,就可以右鍵點擊工程文件,點擊bulid path,查看裡面是否有jar包是打叉的,從網上找到對應的粘貼到lib文件夾,刷新工程文件就可以看到錯誤消失了。
J. Android源碼開發記錄-自定義系統服務和jar包生成
創建文件 IMyApiService
文件路徑 frameworks/base/core/java/android/os/
定義了一個計算和的方法。
在frameworks/base/Android.mk
LOCAL_SRC_FILES最後加入
創建文件 MyApiService.java
文件路徑 frameworks/base/core/java/com/android/server/
實現aidl的介面,計算參數和。
(1)Context添加服務名
文件路徑 frameworks/base/core/java/android/content/Context.java
添加
(2)添加啟動服務
文件路徑 frameworks/base/services/java/com/android/server/SystemServer.java
在startOtherServices方法中添加
創建 MyApiManager.java文件
文件路徑 frameworks/base/core/java/android/app/
文件路徑 frameworks/base/core/java/android/app/ContextImpl
添加registerService
記住make update-api
編譯打包完成後,燒寫新的固件。
jar主要為了在android studio編譯環境中MyApiManager報錯導致編譯不通過問題。
也可以導入frameworks jar包或使用反射。
在源碼目錄packages/app下新建MyJar文件夾
並新建目錄com/myapi/(包名)
在目錄com/myapi/新建文件MyApi.java
具體Android.mk語法這里不做解釋,可以自行查閱
在MyApi目錄下直接運行mm編譯命令(記得先source build/envsetup.sh)
待編譯完成後,jar生成目錄
out/target/common/obj/JAVA_LIBRARIES/Myapi_intermediates/javalib.jar
可更改為其他名稱。