之前有嘗試要把sdk版本升級到20以上,但是遇到了gradle builder 的bug。
持續在使用的
android.packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
解決apache 裡面的幾個jar的duplicatefileexception的方法變成無效。目前尚無解決方案。
因此持續停留在19版。最近又試了一下升級,問題依然存在。
因為到了23版都還不修正,猜測是不打算修了要硬逼大家回去用httpurlConnection。因為擔心版本越離越遠,哪天無法compile的話就慘了。
於是下定決心要把整個apache http溝通的部分全部修成native api。
好不容易修好要開始debug,更新sdk版本為23.0.1版後,又遇到gradle builder bug。
不知原因的,compiler所有檔案全部ok,但是在製作debug/run的apk的時候出現
Error:Execution failed for task ':app:dexDebug'.
>com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:
Process 'command 'java'' finished with non-zero exit value 1
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
好了,第一步是要在android studio的哪裡加參數?依然是查google...
結果是加在這裡:
加了之後發現資料還是不足。試了幾小時之後突然想到降版本看看。
降到22.0.1之後發現訊息出來了。原來資料不足是sdk的bug... 這真的太扯... Orz
訊息如下:
最後確定是此問題:
Caused by: java.lang.NullPointerException
at com.android.dx.cf.code.ConcreteMethod.<init>(ConcreteMethod.java:87)
at com.android.dx.cf.code.ConcreteMethod.<init>(ConcreteMethod.java:75)
at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:271)
... 26 more
...while processing <init> (Ljp/co/hogehoge/HogeActivity;)V
...while processing jp/co/hogehoge/HogeActivity$1.class
參考網站
http://qiita.com/developerwaiwai/items/0894b5c450b337a236ed
,解法真的是令人吐血。不過這應該是c語言工程師留下來的積弊... (在下就是)
if (true) -> if (Boolean.TRUE)
if (false) -> if (Boolean.FALSE)
這真的是令人無法接受的bug... 改完之後順利完成apk製作。
0 件のコメント:
コメントを投稿