标签: android

如何在Cordova Android应用程序中使用服务工作者?

我想在我的Cordova Android添加中使用服务工作者作为一种方便的方式来与服务器同步一些图像.我注意到这个问题表明这是不可能的,因为服务工作者必须通过加载https:,而Cordova将通过加载文件file:.

另一方面,似乎离子支持服务工作者.这意味着他们已经找到了一些方法来完成这项工作.但是,我不使用离子.对于iOS的服务工作者来说似乎有一个cordova插件,但正如我所说,我在Android上.

如果可能的话,在Cordova Android应用程序中使用服务工作者的当前最佳做法是什么?

android cordova service-worker

35
推荐指数
1
解决办法
8049
查看次数

Android Source Generator:错误:无法找到基本名称messages.AndroidJpsBundle的包

我之前使用Android Studio v2.3制作模块,这没关系.现在我改为Android Studio v3.0,当我尝试Make Module时,它显示以下错误:

Error:Android Source Generator: Error: Can't find bundle for base name messages.AndroidJpsBundle, locale en_US
java.util.MissingResourceException: Can't find bundle for base name messages.AndroidJpsBundle, locale en_US
    at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1564)
    at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1387)
    at java.util.ResourceBundle.getBundle(ResourceBundle.java:773)
    at org.jetbrains.jps.android.AndroidJpsBundle.getBundle(AndroidJpsBundle.java:22)
    at org.jetbrains.jps.android.AndroidJpsBundle.message(AndroidJpsBundle.java:32)
    at org.jetbrains.jps.android.AndroidSourceGeneratingBuilder.runAaptCompiler(AndroidSourceGeneratingBuilder.java:971)
    at org.jetbrains.jps.android.AndroidSourceGeneratingBuilder.doBuild(AndroidSourceGeneratingBuilder.java:210)
    at org.jetbrains.jps.android.AndroidSourceGeneratingBuilder.build(AndroidSourceGeneratingBuilder.java:114)
    at org.jetbrains.jps.incremental.IncProjectBuilder.runModuleLevelBuilders(IncProjectBuilder.java:1263)
    at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:940)
    at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1012)
    at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:903)
    at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:736)
    at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:384)
    at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:192)
    at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:138)
    at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:295)
    at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:125)
    at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:236)
    at org.jetbrains.jps.service.impl.SharedThreadPoolImpl.lambda$executeOnPooledThread$0(SharedThreadPoolImpl.java:42)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)

android android-studio android-studio-3.0

35
推荐指数
2
解决办法
4万
查看次数

JaCoCo使用Kotlin和Android 3.0返回0%的覆盖率

我正在尝试检查我在Kotlin中编写的测试用例的代码覆盖率.当我执行时./gradlew createDebugCoverageReport --info,我的coverage.ec文件为空,我的报告显示我有0%的覆盖率.请注意,测试用例100%成功.谁能想到我的coverage.ec文件一直返回0字节的原因?

我到处搜寻都没有运气.

apply plugin: 'com.android.library'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

apply plugin: 'jacoco'


android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"
    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        debug {
            testCoverageEnabled = true
        }
        release {
            minifyEnabled false
            testCoverageEnabled = true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }


    testOptions {
        unitTests.all {
            jacoco {
                includeNoLocationClasses = true
            }
        }
    }

}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude …
Run Code Online (Sandbox Code Playgroud)

android code-coverage jacoco kotlin

35
推荐指数
1
解决办法
6453
查看次数

如何在Firestore中一次创建/更新多个文档

是否可以仅使用一个请求在Firestore中存储多个文档?使用此循环可能但这会导致列表中的每个项目进行一次保存操作.

for (counter in counters) {
    val counterDocRef = FirebaseFirestore.getInstance()
            .document("users/${auth.currentUser!!.uid}/lists/${listId}/counters/${counter.id}")
    val counterData = mapOf(
            "name" to counter.name,
            "score" to counter.score,
    )
    counterDocRef.set(counterData)
}
Run Code Online (Sandbox Code Playgroud)

android firebase google-cloud-firestore

35
推荐指数
2
解决办法
2万
查看次数

使用非不透明活动定位Android API 27时锁定屏幕方向

我有一个已android:windowIsTranslucent设置为trueandroid:windowBackground设置为半透明背景的活动.我刚刚更改了目标并将sdk版本编译为27,现在启动此活动时出现异常:

java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation

由于这是一个新的sdk,目前还没有关于它的任何内容(它似乎来自这行代码:https://android.googlesource.com/platform/frameworks/base.git/+/master/ core/java/android/app/Activity.java#987)

有没有办法解决这个问题?如果我android:screenOrientation="portrait"从我的清单中取出这项活动,该应用程序不会崩溃,但我希望能够保持这样.

java android android-activity

35
推荐指数
3
解决办法
1万
查看次数

Kotlin错误:Dagger不支持注入私人领域

我在kotlin活动中使用ViewPager,我希望在Kotlin Fragment中使用匕首注射.我有错误:Dagger不支持注入私有字段.在Java Fragment中匕首注射工作.为什么我不能在kotlin片段中注入匕首?

在我的kotlin活动中

mPagerAdapter = object : FragmentPagerAdapter(supportFragmentManager) {

        private val mFragments = arrayOf(KotlinFragment(), JavaFragment())
        private val mFragmentNames = arrayOf(getString(R.string.cashdocuments), getString(R.string.action_absmysql))

        override fun getItem(position: Int): Fragment {
            return mFragments[position]
        }

        override fun getCount(): Int {
            return mFragments.size
        }

        override fun getPageTitle(position: Int): CharSequence {
            return mFragmentNames[position]
        }
    }
Run Code Online (Sandbox Code Playgroud)

我的kotlin片段

class KotlinFragment : Fragment()  {


@Inject
internal var mSharedPreferences: SharedPreferences? = null

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    (activity.application as SamfantozziApp).dgaeacomponent().inject(this)

}

override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?,
                          savedInstanceState: Bundle?): …
Run Code Online (Sandbox Code Playgroud)

android dependency-injection kotlin dagger dagger-2

35
推荐指数
7
解决办法
1万
查看次数

将项目添加到LiveData列表时通知观察者

将项目添加到LiveData列表时,我需要获取Observer事件.但正如我所理解的那样,只有当我用新的列表替换旧列表时才会收到事件.例如,当我做下一个时:

list.value = mutableListOf(IssuePost(UserEntity(name, email, photoUrl), issueEntity))
Run Code Online (Sandbox Code Playgroud)

观察者得到事件.但是当我只是将item添加到value时,Observer是静默的.您能否就我如何实施我的需求提出建议?

android kotlin android-livedata

35
推荐指数
5
解决办法
2万
查看次数

Kotlin中的错误,但仅使用Java - 类kotlin.reflect.jvm.internal.FunctionCaller $ FieldSetter

我试图运行我的Android应用程序时遇到此错误,我根本不使用Kotlin,应用程序是用Java编写的...

Class kotlin.reflect.jvm.internal.FunctionCaller$FieldSetter can not access a member of class com.android.build.gradle.tasks.ManifestProcessorTask with modifiers "private"
Run Code Online (Sandbox Code Playgroud)

java android kotlin android-studio

35
推荐指数
2
解决办法
8254
查看次数

无法使字段私有最终 java.lang.String java.io.File.path 可访问 Qt Android

我正在尝试在 Qt 中运行我的 android 程序,但是出现以下错误:

Execution failed for task ':processDebugManifest'.
> Unable to make field private final java.lang.String java.io.File.path accessible: module java.base does not "opens java.io" to unnamed module @13d72a22
Run Code Online (Sandbox Code Playgroud)

我尝试了不同版本的 jdk 和 gradle 但没有任何帮助。

Gradle版本:7.4.2 JDK版本:18

java android compiler-errors gradle android-studio

35
推荐指数
5
解决办法
8万
查看次数

Kotlin 多平台移动 targetSdk 已弃用

build.gradle.kts我在 KMM 项目的模块中设置了文件shared,如下所示:

android {
    namespace = "com.my.project"
    compileSdk = 33

    sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
    defaultConfig {
        minSdk = 24
        targetSdk = 33
    }
}
Run Code Online (Sandbox Code Playgroud)

对于targetSDK我收到以下警告:

targetSdk: Int?' is deprecated. Will be removed from library DSL in v9.0
Run Code Online (Sandbox Code Playgroud)

如何迁移这部分并targetSdk在我的 KMM 项目中为 Android 项目正确设置版本?

android kotlin-multiplatform

35
推荐指数
1
解决办法
5936
查看次数