2016-04-03 50 views
0

我正試圖將Apache Flink移植到Android。其中一個最大的問題是Android的某些java工具不存在,但是這些衝突在編譯時不會被檢測到,並且僅在運行時檢測到錯誤(NoClassDefFoundError excpetion)。如何在Intellij IDEA或Android Studio中搜索未解析的庫?

例如,Java的ManagementFactory不存在針對Android,但即使在this類有未解決的符號/庫,特別是沒有編譯錯誤被拋出:

import javax.management.MBeanServer; 

import java.lang.management.BufferPoolMXBean; 
import java.lang.management.GarbageCollectorMXBean; 
import java.lang.management.ManagementFactory; 
import java.lang.management.MemoryMXBean; 
import java.lang.management.MemoryPoolMXBean; 
import java.lang.management.MemoryType; 
import java.lang.management.MemoryUsage; 

現在,我包括弗林克的我的Android Studio項目中的jar(flink-clients,flink-java,flink-runtime和flink-streaming),我想搜索所有這些未解決的依賴關係,以避免在運行時出現這些異常。有任何Android Studio工具用於此目的?

+0

添加-info來構建。它會顯示一些關於反射方法的消息。 –

+0

在您的評論之後,我添加了「-info」,但沒有返回有用的信息。 – justHelloWorld

+0

你確定這是一個android項目嗎? –

回答

0

我認爲在項目中包含jar依賴關係不會讓Android Studio和編譯器在已經構建的jar中搜索缺少的類。嘗試將flink的src添加到您的項目中。我試過了,我所有未解決的進口都是紅色的。

+0

這可能是一個解決方案,但如果在flink src中使用依賴於某些未解決的庫的第三方庫,該怎麼辦? – justHelloWorld

+0

我想你必須找到它們並將它們也包含爲src,因爲android的java與普通的java稍有不同,並且這些第三方庫也可能具有不在SDK中的類。 – thekekc

+0

我想這是唯一的解決方案(地獄) – justHelloWorld

相關問題