Tag: android architecture components

设置TargetSDK = 22但编译SDK = 26的优缺点是什么?

我已经经历了几篇文章和文档 ,所以问题来了解minSDK vs targetSDK与compileSDK之间的区别。 例如,在介质上: 选择您的compileSdkVersion,minSdkVersion和targetSdkVersion 基本上总结了一下 minSdkVersion <= targetSdkVersion <= compileSdkVersion 但是还是想知道如果我设置TargetSDK = 22但是编译SDK = 26有什么优点和缺点? 要考虑的要点是 – 我想使用RxJava 2,Dagger 2,最新支持库提供的Android Architecture组件,Android Studio 3.0和Gradle 4.1等。 通过将Target SDK版本设置为低于Android M的22,我想避免运行时权限对话框。 未来应该可以迁移到Kotlin。 minSDK版本将保持15

在Room数据库库中将Enum作为主键时出错

我正在使用一个枚举成为与数据库的TypeConvertor的主键和它dos't运行时编译并抛出一个错误 这是我的转换器 class QuranIndexConverter { @TypeConverter fun toQuranIndex(index: String): QuranIndex { return QuranIndex.valueOf(index) } @TypeConverter fun toStringIndex(quranIndex: QuranIndex): String { return quranIndex.name }} 这里是道 @Dao interface SuraDao { @Query("SELECT * FROM " + Constants.TABLE_NAME) fun getAll(): LiveData<List<Sura>> @Insert fun insertAll(suras: List<Sura>) @Insert fun insert(sura: Sura) @Delete fun deleteAll(suras: List<Sura>) @Delete fun delete(sura: Sura)} 这是模块 @Entity(tableName […]

Android室错误:类型转换器无法识别列表的枚举

房间库不识别我为枚举List创建的TypeConverter 。 但是,当我将其更改为枚举的ArrayList它工作正常。 任何人有任何想法,为什么和我能做些什么来使这个工作与List ? (在Kotlin中使用列表更容易,我真的不希望只是因为这个原因转换回ArrayList )。 这是我的代码: 我的模特: @Entity data class Example(@PrimaryKey val id: String?, val name: String, var days: List<DayOfWeek>?) DayOfWeek是一个枚举: enum class DayOfWeek { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; val value: Int get() = ordinal + 1 companion object { private val ENUMS = DayOfWeek.values() fun of(dayOfWeek: Int): DayOfWeek { […]

首次更新后,Android LiveData Observer无效

我正在尝试使用Kotlin来实现架构组件的实时数据的基本实现: class MarketFragment : LifecycleFragment(){ …… override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) viewModel=ViewModelProviders.of(this).get(MarketViewModel::class.java) viewModel.book?.observe(this, Observer { book-> //updateUI }) …. 我的ViewModel类是这样创建的: class MarketViewModel : ViewModel() { var book: MutableLiveData<Book>? =MutableLiveData() var repository: Repository?= Repository() init { update("parameter") } fun update(s: String) { book=repository?.getBook(s) } } 和我的库: fun getBook(bookSymbol:String):MutableLiveData<Book> { val book=MutableLiveData<Book>() …… call . enqueue […]

房间持久性:错误:实体和Pojos必须有一个可用的公共构造函数

我正在将一个项目转换为Kotlin,我试图让我的模型(这也是我的实体)的一个数据类,我打算使用Moshi从API转换JSON响应 @Entity(tableName = "movies") data class MovieKt( @PrimaryKey var id : Int, var title: String, var overview: String, var poster_path: String, var backdrop_path: String, var release_date: String, var vote_average: Double, var isFavorite: Int ) 我无法构建以下错误的应用程序的原因 错误:实体和Pojos必须有一个可用的公共构造函数。 你可以有一个空的构造函数或者一个构造函数,它们的参数匹配字段(按名称和类型)。 错误:找不到字段的setter。 我发现的例子不是很远 想法如何解决?

第一个参数是带有一个方法的类时,不能用lambda替换SAM构造函数

我困惑于SAM构造函数,我有这个Java类: public class TestSam<T> { public void observe(ZeroMethods zero, Observer<T> observer) { } public void observe(OneMethod one, Observer<T> observer) { } public void observe(TwoMethods two, Observer<T> observer) { } public interface Observer<T> { void onChanged(@Nullable T t); } public interface ZeroMethods { } public interface OneMethod { First getFirst(); } public interface TwoMethods { First […]

Kotlin,proguard,Android架构组件

我有一个在那里有一个实时数据变量的视图模型。 我的活动观察它,以更新用户界面。 在调试中,这一切都很好。 当启用proguard时,它不再观察livedata的变化。 我已检查实时数据是否正确更新。 但是,观察者回调从来没有被调用过。 有关如何配置Proguard和什么可能是错误的任何提示? 我试图保持我的包类没有成功: -keep class com.example.myapp.** { *; } 这里是ViewModel: class SplashViewModelImpl : JapetViewModel(), SplashViewModel { private val isTimeUp = MutableLiveData<Boolean>() init { isTimeUp.value = false Observable.timer(2000L, TimeUnit.MILLISECONDS) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe { isTimeUp.postValue(true) } } override fun isTimeUp(): LiveData<Boolean> = isTimeUp } 而活动: class SplashActivity : MyBaseActivity() { lateinit var […]

Android的kotlin和房间持久性库不建设

我试图使用kotlin房间,没有任何作品,它会抛出以下内容: Supported source version 'RELEASE_7' from annotation processor 'android.arch.lifecycle.LifecycleProcessor' less than -source '1.8' Supported source version 'RELEASE_7' from annotation processor 'android.arch.persistence.room.RoomProcessor' less than – source '1.8' The following options were not recognized by any processor: '[kapt.kotlin.generated]' 在我的Build.Gradle类,我有以下(失序,但所有重要的信息在这里) //project build.gradle ext { versions = [ support: '25.3.1', dagger : '2.11', arch_comp : '1.0.0-alpha1' ] } //app […]