Tag: 安卓

使用Firebase查询实施Firebase原生快递广告

a)我想显示从firebase查询生成的动态列表内的admob原生快速广告 b)我使用PostListFragment.java来显示post,post适配器是RVAdapter.java 三)我加载和以编程方式显示广告,并与静态列表工作正常 d)这是动态列表: mPosts = getPosts(postsQuery); f)这是静态列表: mPosts = new ArrayList(); mPosts.add(new Post(“key” , “uid” , “author” , “title” , “body”)); mPosts.add(new Post(“key” , “uid” , “author” , “title” , “body”)); mPosts.add(new Post(“key” , “uid” , “author” , “title” , “body”)); mPosts.add(new Post(“key” , “uid” , “author” , “title” , “body”)); mPosts.add(new Post(“key” , […]

Kotlin lateinit记者java

你好,当我使用Kotlin来编程Android我已经看到在代码中的lateinit 。 java中的等价物是什么?我怎么把这个代码从Kotlin改成Java? public class MyTest { lateinit var subject: TestSubject }

FIRESTORE持久性数据

谈论火灾持久性数据,让我们假设用户在第一次启动应用程序时没有任何连接。 我添加一些数据到Firestore数据库(如userID ..),我可以用get()方法取回它。 现在用户关闭应用程序。 下一次,他将打开应用程序(仍然没有连接),他将能够检索以前存储的数据,就像它被存储在sharedprefs的方式? 我不能清楚地弄清楚如何find一个合适的方法来建立一个永久数据的初始阶段。 我有几个片段。 每次启动其中一个时,我使用“onResume”方法从数据中填充我的组件(先前存储在sharedpref中)。 当我设置Firestore getData时,需要时间来检索。 因此,如果用户从当前片段更改为另一个,那么当连接为ON时,在数据库结果完成时,组件有空或无法访问的错误。 实施这种“onResume”数据再填充的最佳方式是什么? 更新: 以下是一些代码: MainAvtivity .kt FirebaseFirestore.getInstance().firestoreSettings.isPersistenceEnabled sightingsDatabase = FirebaseFirestore.getInstance() docname=FireStoreSetup().setupFB(sightingsDatabase!!,this) 一个kotlin对象类来填充我的文档: data class Sighting(var userID: String, var sig_wit_situation_type: Int, var sig_env_background_type: Int, var sig_ground_type: Int, var sig_YYYY: String, var sig_MM: String, var sig_DD: String, var sig_time_start: String, var sig_date_time: String, var sig_duration_hms: String, var […]

@Name注释exception

我正在用Kotlin Dagger 2和@Named注解( Java使用相同的代码正常工作) Error:[dagger.android.AndroidInjector.inject(T)] @javax.inject.Named(“LOGGING_INTERCEPTOR”) okhttp3.Interceptor cannot be provided without an @Provides-annotated method. 这是我的API模块代码的一部分: @Provides @Named(LOGGING_INTERCEPTOR) fun provideLoggingInterceptor() = HttpLoggingInterceptor().apply { level = HttpLoggingInterceptor.Level.BODY } @Provides @Named(CONNECTIVITY_INTERCEPTOR) fun provideConnectivityInterceptor(): Interceptor = ConnectivityInterceptor() @Singleton @Provides fun provideOkHttpClient( @Named(CONNECTIVITY_INTERCEPTOR) connectivityInterceptor: Interceptor, @Named(LOGGING_INTERCEPTOR) loggingInterceptor: Interceptor ): OkHttpClient = OkHttpClient.Builder() .connectTimeout(CONNECT_TIMEOUT, TimeUnit.SECONDS) .writeTimeout(WRITE_TIMEOUT, TimeUnit.SECONDS) .readTimeout(READ_TIMEOUT, TimeUnit.SECONDS) .addInterceptor(connectivityInterceptor) .apply […]

Android Studio Bug说新的未解决的参考

我试图为我的朋友做一个应用程序,这个错误不会消失。 我需要在3月6日之前完成应用程序,如果我不修复这个错误并完成剩下的工作,我不打算这样做。 此外,如果有一种方法,使nav_view不是一个特定的nav_,但每个nav_有。 所以我可以从nav_donate跳到nav_prayers或nav_donate到nav_events。 错误在页面的底部 package com.naifcenter.mohammad.naifcenter import android.app.FragmentManager import android.os.Bundle import android.support.design.widget.Snackbar import android.support.design.widget.NavigationView import android.support.v4.view.GravityCompat import android.support.v7.app.ActionBarDrawerToggle import android.support.v7.app.AppCompatActivity import android.view.Menu import android.view.MenuItem import kotlinx.android.synthetic.main.activity_home_page.* import kotlinx.android.synthetic.main.app_bar_home_page.* class HomePage : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_home_page) setSupportActionBar(toolbar) fab.setOnClickListener { view -> Snackbar.make(view, “Replace with your own action”, Snackbar.LENGTH_LONG) .setAction(“Action”, […]

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

房间库不识别我为枚举List创建的TypeConverter 。 但是,当我将其更改为枚举的ArrayList它工作正常。 任何人有任何想法,为什么和我能做些什么来使这个工作与List ? (在Kotlin中使用列表更容易,我真的不希望只是因为这个原因转换回ArrayList )。 这是我的代码: 我的模特: @Entity data class Example(@PrimaryKey val id: String?, val name: String, var days: List?) 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 { […]

错误:执行任务’:app:clean’失败。 无法删除文件

我试图重建我的Android Studio Gradle项目(主要包含Kotlin代码),但在清理/重建过程中,它开始抛出UnableToDeleteFileException : Execution failed for task ‘:app:clean’. > Unable to delete file: C:\Users\User\KotlinGameEngine\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\23.0.1\jars\classes.jar 我试图改变我的项目的包结构后,开始发生。 不幸的是,我通过重命名和移动源文件夹,而不是通过Android Studio重构,这是一个坏主意。 我一直在寻找这个问题的解决办法,而这些都是我试图无效的东西: 做一个Gradle同步; 重新安装Java JRE和Java SDK; 重新安装最新版本的Android Studio(1.4); 回滚到以前的AS版本(1.3); 使AS缓存无效并重新启动; 删除项目目录中的gradle和.gradle目录; 删除我的用户目录中的.gradle目录; 从AS终端运行gradlew clean ; 手动将源代码复制到一个新项目(奇怪的是,它在某些项目中持续存在) 我已经尝试了一些成功的事情,但只能让我再次执行一次干净的重建,然后再次发生错误: 关闭AS,手动删除构建文件并再次打开它; 当AS正在运行时,会杀死java.exe进程(这在技术上可以每次都完成,但是这很枯燥,并且会降低构建过程的速度) 所以看起来,编译Java进程可能会因为某种原因而对构建文件进行锁定,但这也可能与Kotlin有关。 我有一个(更成熟的)我正在处理的Java Android项目,虽然我不能在清理时重现此错误。 这似乎只发生在我的Kotlin项目上。 有任何想法吗? 提前致谢。 更新: 我发现问题是由Kotlin Android插件引起的。 当我从模块的build.gradle文件中删除apply plugin: ‘kotlin-android’时,问题就消失了,当我重新插入时,它会回来。 随时提供任何洞察到这一点。 更新2: 最后的更新不是原因。 我发现如果一个项目包含一个Kotlin文件,那么重建和清理失败。 即使所有Kotlin文件都被删除,它仍然会失败,直到后台Java进程被终止,这意味着它在构建文件上有某种锁定。 我在这里提交了一个bug,更多的细节和步骤来重现错误: KT-9440

在android studio中使用main函数运行单个kotlin类

我正在尝试熟悉Kotlin在我的android应用程序中使用。 所以首先我想尝试一些简单的kotlin示例,只是为了熟悉kotlin的语法。 我只用main方法在我的android项目中创建了一个名为Main.kt的类。 fun main(args: Array) { println(“Hello World”); } Android工作室向我展示了主方法左侧的一个kotlin图标,当我点击这个图标时,它会显示下面三个选项: 1)运行Mainkt 2)调试Mainkt 3)运行与覆盖面的Mainkt 我选择了第一个,但它抛出了我 Exception in thread “main” java.lang.ClassNotFoundException: com.vikalp.kotlin.MainKt at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at com.intellij.rt.execution.application.AppMainV2.main(AppMainV2.java:107) 我陷入了这样一个小问题。 让我知道你们中的任何一个人是否面临这样的问题和解决方案。

获取权限拒绝例外

我在我的应用程序中有一个活动,允许用户从设备中逐一选择几个文件,我正在使用这样的意图: Intent intent = new Intent(); intent.setType(“*/*”); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent, getString(R.string.select_attachments_activity_chooser_label)), SELECT_PICTURE); 这工作得很好,我得到的Uri的文件选择,他们看起来像这样: content://com.android.providers.media.documents/document/image%3A42555 那么,如果该文件是一个图像,我解码它: InputStream streamForDecodeBitmap = MyApp.getContext().getContentResolver().openInputStream(uri); Bitmap bitmap = BitmapFactory.decodeStream(streamForDecodeBitmap, null, options); 当用户点击一个按钮时,我通过intent将Uris列表传递给另一个活动,并且在这个活动中,在一个AsyncTask中,我使用base64对文件进行编码以便通过网络发送: InputStream is = MyApp.getContext().getContentResolver().openInputStream(uri); byte[] inputData = getBytes(is); is.close(); return Base64.encodeToString(inputData, Base64.DEFAULT); 问题是,当我打开inputStream,有时它的工作,但大部分时间我得到这个exception: E/AndroidRuntime(22270): Caused by: java.lang.SecurityException: Permission Denial: opening provider com.android.providers.media.MediaDocumentsProvider from ProcessRecord{42858fe0 22270:co.uk.manifesto.freeagentapp/u0a246} (pid=22270, uid=10246) requires android.permission.MANAGE_DOCUMENTS or […]

错误“不能为null”在Kotlin中

有一个.zip文件中有多个文件,我正在尝试获取。 试图解压缩文件提供了一个java.lang.IllegalStateException:zis.nextEntry不能为null。 如何正确地做到这一点? @Throws(IOException::class) fun unzip(zipFile: File, targetDirectory: File) { val zis = ZipInputStream( BufferedInputStream(FileInputStream(zipFile))) try { var ze: ZipEntry var count: Int val buffer = ByteArray(8192) ze = zis.nextEntry while (ze != null) { val file = File(targetDirectory, ze.name) val dir = if (ze.isDirectory) file else file.parentFile if (!dir.isDirectory && !dir.mkdirs()) throw FileNotFoundException(“Failed to […]