Android studio 使用過程中的問題方案和小貼士(一)

一 、問題方案

  • 報錯問題

Error:Execution failed for task ':app:mergeDebugResources'.
> Error: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException:
Error:java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException:


A:這里可能是因為點9圖片的問題,找到對應圖片并打開,勾上showbadpatch可以修改點9圖片問題


  • 報錯問題

Gradle 'AndroidUsbCamera-master' project refresh failed
Error:Configuration with name 'default' not found.

如圖:

Paste_Image.png

A:導致上面的問題可能是由于以下導致:
    a、settings.gradle包含了不正確的目錄:include ":目錄名"
    b、app目錄下build.gradle文件目錄不正確:compile project(':目錄名')
    c、引入的第三方庫下是否包含build.gradle文件

  • 報錯問題

Installation failed with message Failed to finalize session : INSTALL_FAILED_INVALID_APK: Split lib_slice_9_apk was defined multiple times. It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and the

A: 大意就是要說lib_dependencies_apk這個東西定義了多次,要我們點擊ok卸載重裝,但是點擊OK,還是運行不了:
a、清理項目之前編譯好的.class文件,重新編譯文件

點擊build->clean project ,然后再點擊 rebuild project。

b、刪除ide自動生成的一些文件,刪除.gradle , .idea , build 三個文件夾

  • 報錯問題

文件本地查看沒問題,Android Studio上查看的時候里面的數據全錯亂

A:緩存問題。

a:清除緩存重啟studio - 》 File —> Invalidate Cahes/ Restart
b:刪除 項目路徑下的 .gradle .idea 文件, 以及 app 目錄下的build文件,然后重新編譯
c:清除build緩存 Clean 后 Rebuild一下
d:找到C 盤。用戶目錄。.AndroidStudio版本號 .AndroidStudio3.3\system\cache 文件夾,關閉studio后將其刪除

  • 報錯問題


    微信截圖_20200413193710.png

    A:引用androidX沖突問題
    在gradle.properties文件中加:

android.useAndroidX=true
android.enableJetifier=true

  • 報錯問題


    微信截圖_20200820201254.png

A:代理配置問題

打開 ~/.gradle/gradle.properties (如果是windows的話應該在
C:\Users\用戶\.gradle\gradle.properties),把https的兩行注釋掉即可,重啟AS。

image.png
  • 報錯問題

Program type already present: org.apache.commons.codec.Decoder

A:引用重復jar包問題

1、navigate ->class ->查詢

20190416173555396.png

2、 雙擊尋找重復jar包位置 然后通過以下方式之一處理:
(1)刪除重復jar包問題;

20190416172957123.png

(2)用exclude解決,大概意思就是去掉 你不需要的類 如:

20190416173444703.png

二、小貼士

<一> 導入別人的項目如何更改Gradle版本跟自己的相匹配

我們在導入別人的項目時,經常會卡在這個界面,如下圖所示:


Paste_Image.png

  這是由于在首次導入項目的時候AS默認是使用 gradle-wrapper-properties 中默認的設置,它會從網上下載所需要的對應版本的 gradle。這時我們只要把默認的加載修改為我們本地有的就ok了。即修改gradle-wrapper-properties 文件,同時修改build.gradle對應的dependencies中classpath路徑,如圖所示:

Paste_Image.png
Paste_Image.png

另一種方法就是下載對應的Gradle版本,并修改AS配置的Gradle路徑使之對應。

<二> 如何在AS中導入android的framework.jar包

從Eclipse 轉到Android Studio,必經 的一個過程就是導入第三方jar包,導入普通的jar包方式比較簡單,網上其他的例子也比較多,但是關于導入framework.jar包內容就比較少。 有時候開發需要一些依賴framework中隱藏方法的時候,我們可以導入framework.jar, 編譯的時候依賴framework, 打包的時候不打進去,這在eclipse中實現方式比較簡單,這里記錄下Android studio中導入framework.jar包的方式,其他系統jar包的導入方式同理。
1,首先將framework.jar拷貝到項目的/libs文件夾中,然后右鍵framework.jar文件,然后Add as Library ,再選當前的module。

Paste_Image.png

  操作之后,在你的Module的build.gradle中會增加了

Paste_Image.png

這個時候我們已經添加了framework.jar包,但是我們還有改變framework.jar的作用域屬性,右鍵你的module,Open Module Setting,然后將framework.jar的Scope改為 Provided 。如圖所示:

Paste_Image.png

改了framework.jar的作用域后,Module的build.gradle也會有改變,之前的compile files(‘libs/framework.jar’),會變成provided files(‘libs/framework.jar’)。

2,改了framework.jar 的scope后,再在修改project的build.gradle文件,改成如下所示:

Paste_Image.png

這是在原有的基礎上加了gradle.projectsEvaluted{}里面的內容,這里要說明下”Xbootclasspath/p”后接的路徑,是相對于當前Project的根目錄,例子中的”:app\libs\framework.jar”其中的app為Module名,libs就是放framework.jar的文件夾了。此時,Make Project就OK了(報紅也沒有關系)。
  如果想調用jar包里面的方法可能不會自動提示,這個時候修改一下module對應的*.iml文件,把framework.jar包的引用放到第一個,這時再調用方法就可以自動提示了。

<三> 如何在AS中引用so文件

AS中引用so庫其實是比較簡單的,只需要在Module相應的目錄下建立對應的文件夾,命名為jniLibs,再把相應的so文件放進去就行了,如圖所示:

QQ截圖20170325190549.png

  至于為什么這么放置,其實是有一定依據的,原理如下:
  其實在AndroidStudio中,我們之所以可以把jar包放在對應模塊的libs目錄下,比如app模塊(也就是通常意義下的主工程了)的libs目錄中,而不需要再去配置build.gradle文件,就可以正常使用這些jar包,是因為在AndroidStudio中新建項目時,系統已經在默認為我們配置好了gradle,看相應模塊下的build.gradle文件的話,一般會有這么一句:

dependencies { compile fileTree(dir: 'libs', include: ['.jar'])*}

其實,這句就是告訴gradle,我們的第三方jar包在libs目錄下,如果沒有這一行配置,那么理論上我們把jar包直接放在libs目錄下其實是不行的,只不過新建項目時系統已經為我們配好了。這里libs是個相對路徑,因為我們的build.gradle文件本身就在app模塊下,那么這里的libs當然也就是指app模塊下的libs,其實build.gradle文件中所有的路徑都可以寫相對路徑,我們下邊講的so包的路徑也是只寫相對路徑就可以了。
  OK,言歸正傳,現在知道jar包的引入原理了,那么so包為什么要放在這樣的一個目錄下?能不能放在任意一個自定義的目錄呢?當然是可以的。
其實在build.gradle中,默認會有一些這樣的配置:

   sourceSets { 
                main {
                         jniLibs.srcDirs = [**'src/main/jniLibs'**] 
                         aidl.srcDirs = [**'src/main/aidl'**]
                }
   }

這些配置在你新建工程之后,在build.gradle文件中默認是沒有的,因為默認就是這樣的,當然也就不寫也可以,當然你寫出來也沒錯。意思是so包就去src/main/jniLibs目錄下找,aidl文件默認就到src/main/aidl目錄下找。當然還有許多其它的配置,你還可以配置你的AndroidManifest.xml文件在哪里,還可以配置你的Java代碼在哪里,如果你不配的話都會有一個默認值,這里只是以jniLibs和aidl為例而已。
  看到這里你應該就明白了,為什么把so包直接放到src目錄下的main目錄下的jinLibs目錄就可以了,而不需要配置gradle文件了,因為系統默認就會到這個目錄下找,如果你想把so包放在一個你喜歡的地方,比如直接放在app目錄下的myJniLibs目錄下,那你只需要把上面內容改成:

   sourceSets { 
                main {
                       jniLibs.srcDirs = ['myJniLibs']
                       aidl.srcDirs = ['src/main/aidl']
                }
   }

這樣就可以了。明白了原理,似乎一切都明了了,同理,如果不想把aidl文件放在默認目錄下,也可以改aidl.srcDirs的值,如果不想把java代碼放在默認目錄,就可以改java.srcDirs的值,如果不想把資源文件放在默認目錄下,就可以改res.srcDirs的值。。。還有幾個,同學們慢慢去研究吧,如果你想把目錄結構改的跟eclipse下的工程一樣,就改這里的值就可以了。

mark

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,401評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,011評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,263評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,543評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,323評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,874評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,968評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,095評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,605評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,551評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,720評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,242評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,961評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,358評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,612評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,330評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,690評論 2 370

推薦閱讀更多精彩內容