Tag: android

Android模拟器6824分段错误

我是Android Dev的新手。 我创建新的android kotlin项目,然后创建新的avd.Firstly如果我不检查“外部文件”(这是平均检查工作室管理)的SD车部分,我有 “An error occurred while creating the AVD. See idea.log for details.” 所以我研究和检查外部文件单选按钮,然后创建avd没有错误。所以 但是,如果我运行该项目没有错误没有模拟器,不能运行项目。所以我尝试“模拟器-avd Nexus_4_API_25”我有 [1] 6824 segmentation fault (core dumped) ./emulator -avd Nexus_4_API_25 再次,我研究了错误,并find这个解决方案,我会尝试这个解决方案,但我没有libOpenglRender.so文件

防止Android应用程序中的内存值更改

美好的一天。 我正在开发应用程序,并遇到了安全测量。 可能导致安全漏洞的问题: •设备已根植 •用户可以将黑客应用程序附加到应用程序进程 •应用程序可以隐藏黑客应用程序进程 •用户可以更改应用程序的内存值(假设更改布尔值为false) 期望的解决方案: •部署后更改内存中的值时捕获该操作 理想情况下,我不能想到任何现有的API可以提供这样的解决方案在Java / Kotlin,任何建议将是有益的。 谢谢

尽管使用RxJava在另一个线程上订阅,但在使用Google的People API时仍然收到IllegalStateExceptionexception

注意:我使用Kotlin和RxKotlin来实现有用的扩展function。 我正在尝试使用Google的People API获取一些用户数据,并且将所有的AsyncTasks和东西都移植到了RxJava中。 一切工作除了这部分: private fun getGooglePerson(service: PeopleService?, account: GoogleSignInAccount) = Single.just(service?.people() ?.get(“people/me”) ?.setPersonFields(“emailAddresses,birthdays,genders,phoneNumbers”) ?.execute() ?: Person()) // If null, return an empty person (shouldn’t ever be null, though) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribeBy( onError = {/*Do something*/}, onSuccess = {/*Do something*/} ) 具体来说,我得到一个IllegalStateException的消息, Calling this from your main thread can lead to deadlock 。 我感到困惑,因为我的印象是,调用subscribeOn应该将其上下的所有东西(除非一个observeOn遵循它)转移到另一个线程(在这种情况下, Schedulers.io() […]

如何创建一个适用于所有Android设备的时间触发通知

我试图做一个通知,经过一段时间后触发。 为了达到这个目的,我有了这个从BroadCast接收器inheritance的AlarmReceiver类,它可以运行在大约API 23的设备上。它不能在我的模拟器上运行API 27.任何线索我做错了什么? class AlarmReceiver : BroadcastReceiver() { companion object { val PRIMARY_CHANNEL = “dj” } override fun onReceive(context: Context, intent: Intent) { val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager val notificationIntent = Intent(context, NotificationActivity::class.java) val stackBuilder = TaskStackBuilder.create(context) stackBuilder.addParentStack(NotificationActivity::class.java) stackBuilder.addNextIntent(notificationIntent) val pendingIntent = stackBuilder.getPendingIntent(100, PendingIntent.FLAG_UPDATE_CURRENT) if (android.os.Build.VERSION_CODES.O <= android.os.Build.VERSION.SDK_INT){ //I create the notification channel […]

返回内部类的调用对象函数

我正在使用Kotlin进行测试,并且正在编写一个小型库,以供测试App项目导入和使用。 在图书馆项目中,我将我的类标记为internal类,因为我不希望它们对于App项目是可见的,但是我希望为该类库提供一个入口点,为此我使用如图所示的Kotlin object下面 LIBRARY object Library { fun getComponent() = AwesomeComponent() } internal class AwesomeComponent() { // some implementation } TEST APP class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val component = Library.getComponent() } } 问题是这不能编译,因为Library object的函数返回一个internaltypes,因此也需要标记为internal,但是这样做会隐藏TestApp的函数。 另一个选择是根本没有internal修饰符,所以TestApp可以看到Library方法,但是它也可以看到Library项目中的类 在这里我忽略了一个简单的解决方案,还是需要重新规划图书馆项目的包装和结构? (不知道如何做到这一点)

如何在android expresso的回收站视图下获取完整的文本

目前,我试图测试正确的数据是否显示为我的espresso UI测试的一部分,为此我有一个Recycler视图,在下面我有一堆线性布局,每个线性布局有一些文本视图,每个都有一个文本。 我正在寻找的是如何使用espresso函数将全部10个文本视图和线性布局的整个文本转换为字符串。 我正在使用kotlin作为我的编程语言。

kodein,将数据注入简单的类

我是kotlin和kodein开发新的。 我想将数据注入一个简单的类,它不扩展。 我有我的MainActivity扩展KodeinAppCompatActivity() ,我的片段,它扩展KodeinSupportFragment()从我的简单类CallType调用一个函数。 但是这个函数必须改变其他简单类ConnectivitySate的布尔值。 我不想使用静态值。 下面,我的代码: class App : Application(), KodeinAware { override val kodein by Kodein.lazy { import(autoAndroidModule(this@App)) bind() with instance(CallType()) bind() with instance(ConnectivityState()) bind() with instance(ContactData()) } override fun onCreate() { super.onCreate() registerActivityLifecycleCallbacks(androidActivityScope.lifecycleManager) } 主要活动 : class MainActivity : KodeinAppCompatActivity() { 我的片段: class JournalFragment : KodeinSupportFragment(){ private val callType: CallType by instance() […]

Android RecyclerView无限滚动而不使用NULL对象来加载指标

我正在创建一个RecyclerView Adapter,在这个链接Android Recyclerview中加载无限数据 。 当我们想要显示加载指标时,我们写下面的代码: contacts.add(null); contactAdapter.notifyItemInserted(contacts.size() – 1); 我正在使用kotlin,不希望这个空对象被添加到列表中,也不希望在RecyclerView之外加载指示器(意味着加载指示器必须是列表中的一个项目)。 有什么办法,我们不需要添加一个空对象? 几乎互联网上的每个例子都使用这个空对象来显示加载指示符。 请显示任何代码示例或任何其他相关的博客文章来帮助。 谢谢。

如何根据选定的项目加载BottomNavigationView片段?

我有一个简单的应用程序写在Kotlin有一个BottomNavigationView。 这个想法是有一个单一的活动(MainActivity)与BottomNavigationView的每个选项卡加载片段。 我已经创建了一个片段,当选择一个选项卡(HomeFragment)时,我想加载一个片段,并且当活动选项卡更改时,已经在BottomNavigationView的图标下更改了文本。 现在我想在改变标签时膨胀/加载片段。 我怎么去做这个? MainActivity.kt: class MainActivity : AppCompatActivity() { private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item -> when (item.itemId) { R.id.navigation_enrollments -> { message.setText(R.string.title_enrollments) return@OnNavigationItemSelectedListener true } R.id.navigation_timeline -> { message.setText(R.string.title_timeline) return@OnNavigationItemSelectedListener true } R.id.navigation_home -> { message.setText(R.string.title_home) return@OnNavigationItemSelectedListener true } R.id.navigation_alerts -> { message.setText(R.string.title_alerts) return@OnNavigationItemSelectedListener true } R.id.navigation_profile -> { message.setText(R.string.title_profile) return@OnNavigationItemSelectedListener […]

如何使用Retrofit2 API在RecyclerView中显示数据?

首先,我是Android / Java / Kotlin开发的新手。 我正在使用Retrofit2从Udacity API检索数据。 我可以看到Logcat中的响应,但是当我尝试在RecyclerView中显示时,只有一个空白屏幕。 我认为错误是在MainActivity中,但我仍然无能,需要帮助。 我的模型类 class Course(var title: String, var subtitle: String, var key: String, var instructors: List, var expected_learning: String, var required_knowledge: String) class Instructor(var name: String, var bio: String) 我的界面 interface ApiServiceInterface { @GET(“courses”) fun list() : Call } 我的适配器 class CourseAdapter(val listCourses: ArrayList, val context: Context) : […]