Это кажется старым ответом на вопрос, но у меня все еще есть некоторые проблемы. Я создал веб-сервер, который разделяет некоторые классы как .jar. Это пример общего класса POJOAndroid Studio - добавить .jar library
@JsonInclude(Include.NON_NULL)
@Entity
@Table(name = "user", uniqueConstraints =
{ @UniqueConstraint(columnNames = "email"),
@UniqueConstraint(columnNames = "nick") })
public class User implements java.io.Serializable, RecognizedServerEntities
{
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "id", unique = true, nullable = false)
private Integer userId;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "threadAuthor",
orphanRemoval = false)
@Cascade({ CascadeType.SAVE_UPDATE })
private Set<Thread> userThreads = new HashSet<Thread>(0);
}
Теперь я пытаюсь создать приложение для Android, которые просто использовать эти общие классы: приложение не нужно знать ничего о Hibernate или javax.persistence (по крайней мере, это то, что я думаю). Однако, когда я создаю новый проект в Android Studio
, для него, похоже, требуются дополнительные библиотеки. Действительно, Gradle процесс сборки генерирует много предупреждений, как
warning: unknown enum constant CascadeType.REMOVE
reason: class file for org.hibernate.annotations.CascadeType not found
warning: unknown enum constant FetchType.EAGER
reason: class file for javax.persistence.FetchType not found
и во время выполнения аварии приложения с этим сообщением журнала
java.lang.NoClassDefFoundError: org/hibernate/annotations/Cascade
Итак, я должен импортировать эти .jar
S в библиотеке и добавить a compile files()
до build.gradle
? Я еще разработал другое клиентское приложение с использованием Java (Swing), и нет необходимости импортировать эти библиотеки: shared.jar было достаточно. Почему Android требует их?
Вы можете попробовать добавить и посмотреть, что произошло. – bjiang
@bjiang знаю, но есть много библиотек, которые нужно добавить, и кажется ненужной тратой пространства. Тем не менее, я просто попытался добавить javax.persistence и hibernate-core в список jars: пока процесс сборки работает без предупреждений, ошибки во время выполнения все равно происходят. Строго ли нужно добавлять эти банки? – tigerjack89