2016-04-03 3 views
0

Я пытаюсь передать Apache Flink на Android. Одна из самых больших проблем заключается в том, что некоторые Java-инструменты не существуют для Android, но эти конфликты не обнаруживаются во время компиляции, а ошибки (NoClassDefFoundError excpetion) обнаруживаются только во время выполнения.Как искать неразрешенные библиотеки в Intellij IDEA или Android Studio?

Например, в Java ManagementFactory не существует для андроида, НО без ошибок компиляции не генерируются, даже если в 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; 

Теперь я включил Flink-х банки (flink-клиенты, flink-java, flink-runtime и flink-streaming) в моем проекте Android Studio, и я бы хотел найти все эти нерешенные зависимости, чтобы избежать такого исключения во время выполнения. Для этого есть какой-нибудь инструмент Android Studio?

+0

add -info to build.It покажет некоторое сообщение о методе отражения. –

+0

После вашего комментария я добавил '-info', но никакой полезной информации не возвращается. – justHelloWorld

+0

Вы уверены, что это андроид-проект? –

ответ

0

Я думаю, что включение jar-зависимостей в проект не заставит Android Studio и компилятор искать отсутствующие классы в уже построенных баночках. Попробуйте включить src of flink в свой проект. Я попробовал это, и у меня были все нерешенные импортные поставки.

+0

Это может быть решение, но что, если в flink src используется сторонняя библиотека, которая полагается на какую-то неразрешенную библиотеку? – justHelloWorld

+0

Я думаю, вы должны найти их и включить их также как src, потому что java для android немного отличается от обычной java, и эти сторонние библиотеки могут также иметь классы, которые не входят в SDK. – thekekc

+0

Я думаю, это единственное решение (ад на земле) – justHelloWorld

Смежные вопросы