android studio androidTest引用jar出錯
阿新 • • 發佈:2019-02-12
調研後發現,androidstudio將androidTest和main打成兩個apk,\app\build\outputs\apk路徑下可以看到打成的兩個apk
app-debug.apk
app-debug-androidTest.apk
解析app-debug-androidTest.apk後發現,
E:\>aapt dump badging E:\app-debug-androidTest.apk
package: name='com.******.test.test' versionCode='' versionName=''
其中androidTest生成的apk會在包名後增加一個.test包名,所以在離線執行時包名後面也需要增加.test。這個apk明顯比主apk小了很多,再次解析class發現,引用的jar方法數很少,看起來只有相關的方法被一起打包,而其它方法被瘦身了。
所以懷疑打包時需要把呼叫的jar也一起打包,看到junit包等方法數量依然很多,所以看看junit怎麼打包的
androidTestCompile 'junit:junit:4.12'
androidTestCompile 'com.android.support.test:rules:0.4.1'
testCompile是宣告本地測試的依賴,androidTestCompile是宣告Instrumented測試依賴
所以這個引用的jar也要一樣宣告,宣告例子如下:
androidTestCompile files('libs/httpunit-1.7.jar')
再次打包檢視apk大小和方法數量果然變大了。