小编Bis*_*uit的帖子

API 'BaseVariant.getApplicationIdTextResource' 已过时并已替换为 'VariantProperties.applicationId'

在构建 gradle 时,我收到以下消息:

API 'BaseVariant.getApplicationIdTextResource' is obsolete and has been replaced with 'VariantProperties.applicationId'

我正在使用Android Studio 4.1 Canary 10gradle:4.1.0-alpha10

android android-gradle-plugin

88
推荐指数
5
解决办法
3万
查看次数

在 Android Studio 3.6.1 中获取 java.lang.NoClassDefFoundError: com/android/resources/ResourceFolderType

有没有人在运行项目时见过这个

Error:Module 'Android' production: java.lang.NoClassDefFoundError: com/android/resources/ResourceFolderType
Run Code Online (Sandbox Code Playgroud)

我在 Android Studio 3.6.1 上使用 Eclipse 编译器 没有什么有用的显示在 google 上

java android android-studio

23
推荐指数
1
解决办法
6351
查看次数

第二台显示器上的AVD崩溃

我刚刚安装了Android Studio,并试图预览我的应用程序,但每当我在任何设备或API上启动AVD仿真器时崩溃,但只有当我将AVD的窗口刷到我的第二台显示器时它才会崩溃.

我的电脑配置:i7-6700k,16Gb RAM和AX配置的GTX 1060
:AVD配置

过去任何人都有同样的问题或有解决方案吗?如果我没有解释得足够多,请随时向我询问更多信息

windows android emulation android-virtual-device android-studio

8
推荐指数
1
解决办法
1018
查看次数

如何在 Android 中使用 Flavors 更改应用程序颜色

在我的应用程序中,我有2 种口味,并且我想res/color为每种口味更改应用程序的颜色 () !

请在文件中查看我的代码build.gradle

flavorDimensions "default"
productFlavors {
    app1 {
        applicationId "com.app.myApp1"
        resValue "string", "app_name", "App 1"
        manifestPlaceholders = [
                appIcon: "@drawable/logo_app1"
        ]
    }
    app2 {
        applicationId "com.app.myApp2"
        resValue "string", "app_name", "App 2"
        manifestPlaceholders = [
                appIcon: "@drawable/logo_app2"
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何设置color.xml每种口味

这怎么可能?

java android android-color android-flavors

6
推荐指数
1
解决办法
2050
查看次数

我是否应该在使用 Retrofit 执行的每个请求中传递我的 APIKEY?

我想知道将 APIKEY 放入所有 REST 请求中的最佳方法,而不必将其添加到请求的参数中。

目前我只接到了几个电话,但我正在尝试进一步了解。

@GET(".")
fun getSearch(@Query("s") text: String, @Query("apikey") APIKEY: String) : Observable<ResponseSearch>
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法不在每次调用的变量中包含 APIKEY

api-key retrofit2 rx-java2

5
推荐指数
1
解决办法
2807
查看次数

芯片组多排芯片

我正在从我的 API 中获取一个列表,例如 25 个国家/地区的标签,例如德国、英国、法国、意大利等......我想要 2 行,chips每行10个,如果我得到 30 个标签下次我取东西时,我想要 3 排,每排 10 个chips等等...

到目前为止,我还没有找到任何允许我这样做的东西。我快速浏览了一下,Flexbox-Layout但它似乎不符合我的需求,我目前有下面的代码,但我正在考虑用一个Recyclerview

分段

viewModel.videoSelected.observe(viewLifecycleOwner, object : Observer<VideoPage> {
            override fun onChanged(videoPage: VideoPage?) {
                videoPage?.tags ?: return
                val chipGroup = binding.chipGroup
                val chipGroupInflater = LayoutInflater.from(chipGroup.context)
                val children = videoPage.tags.map { tagName ->
                    val chip = chipGroupInflater.inflate(R.layout.chip_video_tag, chipGroup, false) as Chip
                    chip.text = tagName
                    chip.tag = tagName
                    chip.setOnClickListener {
                        Toast.makeText(context, tagName, Toast.LENGTH_SHORT).show()
                    }

                    chip
                }

                for (chip in children) {
                    chipGroup.addView(chip)
                }
            } …
Run Code Online (Sandbox Code Playgroud)

android android-chips

5
推荐指数
1
解决办法
2027
查看次数

Exoplayer 搜索栏预览

我正在尝试在我的 exoplayer 上的搜索栏上添加预览,就像在 youtube 或 plex 中一样(参见下图)

在此输入图像描述

我找到了这个,但它还不是最新的。

我已经有了每帧的图像,但我不知道如何将它们集成到我的中Exoplayer,我正在寻找教程或解释,我应该从哪里开始,因为我有点迷失在那里。

Timebar.onScrubListener在浏览 exoplayer 文档时发现的。我猜我将使用这 3 个侦听器来获取磨砂膏的位置并显示相应的图像。

android exoplayer2.x

5
推荐指数
1
解决办法
6632
查看次数

使用协程更新UI异步调用

我必须通过对Room数据库的异步调用来更新UI,但是当我收到此错误时:android.view.ViewRootImpl $ CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触摸其视图。

//收藏夹Presenter.kt

GlobalScope.launch {
    favoritesView.showFavorites(ProductProvider.getAllProducts() as ArrayList<Product>)
}
Run Code Online (Sandbox Code Playgroud)

// ProductProvider.kt

fun getAllProducts() : MutableList<Product> {
    return dao.getAllProducts()
}
Run Code Online (Sandbox Code Playgroud)

// ProductDao.kt

@Query("SELECT * FROM product")
fun getAllProducts(): MutableList<Product>
Run Code Online (Sandbox Code Playgroud)

我需要通过ProductProvider更新UI,因为我将对所有实体使用可靠的解决方案。

android coroutine kotlin

2
推荐指数
3
解决办法
1321
查看次数

资源包装密封类,数据绑定错误

我在使用数据包装时遇到了一个小问题Resource,我不知道如何在数据绑定中使用它。

密封等级

sealed class Resource<out T: Any> {
    data class Success<out T: Any>(val data: T): Resource<T>()
    data class Error(val exception: Throwable): Resource<Nothing>()
    object Loading: Resource<Nothing>()
}
Run Code Online (Sandbox Code Playgroud)

我有这个val product: LiveData<Resource<NetworkProductDetails>>

<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <data>
        <variable
            name="viewModel"
            type="my.package.ProductDetailsViewModel" />
    </data>

    <TextView
        android:id="@+id/product_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@{viewModel.product.productName}"
        android:textAppearance="?attr/textAppearanceBody1"
        android:gravity="center"/>

    ...
</layout>
Run Code Online (Sandbox Code Playgroud)

我遇到了一个问题,因为viewModel.product不是NetworkProductDetails但是Resource<NetworkProductDetails>,而且我的 XML/数据绑定不知道如何处理它。


我找到了一种工作方式,但我想知道是否有更优雅的方式。

第一个解决方案:

<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <data>
        <variable
            name="viewModel"
            type="my.package.ProductDetailsViewModel" />
        <variable
            name="product"
            type="my.package.NetworkProductDetails" />
    </data>

    <TextView
        android:id="@+id/product_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@{product.productName}"
        android:textAppearance="?attr/textAppearanceBody1"
        android:gravity="center"/>

    ... …
Run Code Online (Sandbox Code Playgroud)

android android-databinding sealed-class

2
推荐指数
1
解决办法
5319
查看次数