我知道这个问题已经回答[这里](lateinit属性尚未初始化).但这是由于黄油刀库问题但我的情况有所不同.完全不同.在我的情况下,当我在我的基本活动中使用匕首注入属性时,它显示我的错误引起:kotlin.UninitializedPropertyAccessException:lateinit属性pref尚未初始化
但是当我在我的子活动(登录活动)中使用它时,它的工作正常.
例如.pref.setLanguage("abc") - >它在登录活动中工作正常,但在基本活动中引发错误
这是我的代码:
BaseActivity
abstract class BaseActivity : AppCompatActivity() {
@Inject
lateinit var pref: AppSharedPreferences
@Inject
lateinit var utils: Utils
lateinit var mCurrentLanguage: String
protected lateinit var progressBarUtils: ProgressBarUtils
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
progressBarUtils = ProgressBarUtils(this)
mCurrentLanguage = "EN"
pref.setSelectedLanguage(mCurrentLanguage)
}
}
Run Code Online (Sandbox Code Playgroud)
LoginActivity
class LoginActivity : BaseActivity() {
private val TAG = this.javaClass.name
lateinit var loginViewModel: LoginViewModel
@Inject
lateinit var viewModelFactory: LoginViewModelFactory
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
AndroidInjection.inject(this)
loginViewModel …Run Code Online (Sandbox Code Playgroud) 我被要求在 react-native 的项目中使用静态分析器。因为我已经在使用 Eslint ,它更漂亮,这也有助于识别编译时错误,然后我在 react-native 中找到了用于静态分析的流程。
它让我感到困惑,因为 eslint 做了类似的工作。
我没有发现 flow 和 eslint 之间的区别。所以我的问题是
我已经看到了这个问题。类似的错误,但就我而言是不同的。
与Room一起工作时,我正在创建桌子。工作正常。
@Daointerface
UserDao {
@Query("SELECT * FROM user")
fun getAll(): List<User>
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insert(user: User)
@Delete
fun delete(user: User)}
Run Code Online (Sandbox Code Playgroud)
但后来我发现所有表名都必须存储在不同的类中。如表名“用户”->存储在不同的类中。
例如。
class Table {
companion object {
const val USER_TABLE = "user"
}}
Run Code Online (Sandbox Code Playgroud)
但是下面的代码不起作用。它不是从Table类中获取表名。给出编译时错误。“ Annotation参数必须是编译时间常数”,请帮帮我。
@Query("SELECT * FROM $Table.USER_TABLE")
fun getAll(): List<User>
Run Code Online (Sandbox Code Playgroud) android kotlin android-room android-architecture-components android-jetpack
我正在开发一个应用程序,用户可以在其中录制音频,如果 api 级别高于 23,则暂停它。并且用户可以收听暂停的录音。
但我发现,用户无法收听暂停的音频。但我想要的是用户可以收听暂停的音频
当录音停止时,它可以播放,因为它存储在本地路径中。
我还检查了 android 文档和许多关于堆栈溢出的答案,例如如何播放暂停的音频,但我找不到任何特定的链接。
我在这里分享我的问题。如果您有任何解决方案或找到任何链接如何解决我的问题,我们将不胜感激。
即使我需要分享我的代码,也请告诉我。因为我认为没有必要共享代码。因为当用户停止录音时,它应该可以播放。
下面是我的代码
public class AudioRecordingActivity extends BaseActivity
implements AppDialog.IYesListener,
AppDialog.IDiscardRecordingListener, AppDialog.ICancelRecordingListener,
PlayAudioManager.IVoiceCompleteListener,
MediaRecorder.OnInfoListener {
private static final Logger LOGGER = LoggerFactory.createLogger(AudioRecordingActivity.class);
private TaskDetailsViewModel mViewModel;
private ActivityAudioRecordingBinding mBinding;
private AssignmentIdsModel mAssignmentIdModel;
private long mStartTime = 0;
private long mPauseTime=0;
private MediaRecorder mRecorder;
private File mOutputFile;
public final ObservableField<Integer> mAudioState = new ObservableField<>(0);
private String mAudioPath;
private int mMaxAudioTime;
private int[] amplitudes = new int[100];
private int i = 0;
private Handler …Run Code Online (Sandbox Code Playgroud) 我正在使用带有房间数据库的协程,并且在从房间获取数据时出现以下错误
\app\build\generated\source\kapt\debug\co\location\locationapp\data\source\local\LocationDataDao_Impl.java:87: 错误:CoroutinesRoom 类中的方法执行不能应用于给定类型;return CoroutinesRoom.execute(__db, true, new Callable() { ^ required: RoomDatabase,Callable,Continuation found: RoomDatabase,boolean,>,Continuation
reason: cannot infer type-variable(s) R(实际和形式参数列表在length) 其中 R 是一个类型变量:R 扩展了在方法 execute(RoomDatabase,Callable,Continuation) 中声明的对象,其中 CAP#1 是一个新的类型变量:CAP#1 extends Object super:从捕获的 ? super Unit 的单元
下面是我的 Dao 类
@Dao
interface LocationDataDao {
@Query("SELECT * FROM location limit :limit offset :offset")
suspend fun queryLocationData(limit: Int, offset: Int): List<Location>
@Query("DELETE FROM location")
suspend fun deleteAllLocationData(): Int
@Insert(onConflict = OnConflictStrategy.IGNORE)
suspend fun insertAllLocationData(locationData: List<Location>)
}
Run Code Online (Sandbox Code Playgroud)
下面是我的存储库类
class LocationRepository @Inject
constructor(private val apiInterface: ApiInterface, private …Run Code Online (Sandbox Code Playgroud) android ×3
kotlin ×3
android-room ×2
android-architecture-components ×1
dagger-2 ×1
flowtype ×1
react-native ×1