小编Mar*_*phi的帖子

无法获取提供者com.google.android.gms.ads.MobileAdsInitProvider:java.lang.IllegalStateException:为什么?

我将我的Android Studio(3.2.1)及其sdk更新到最新版本.之后,它需要通过添加这些标记手动更新Manifest:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@drawable/ic_launcher"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    tools:ignore="AllowBackup,GoogleAppIndexingWarning">

    <meta-data
        android:name="com.google.android.gms.ads.APP_ID"
        android:value="ca-app-pub-#############"/>

    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".NewActivity" />
    <activity android:name=".PreviewActivity" />
    <activity android:name=".EditActivity" />
    <activity
        android:name=".preferencesdata.AboutActivity"
        android:theme="@style/Theme.AppCompat.DayNight.NoActionBar" />
    <activity android:name=".preferencesdata.SettingsActivity"
        android:label="@string/settings">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".MainActivity"/>
    </activity>
</application>
Run Code Online (Sandbox Code Playgroud)

相反,应用程序ID我把我的应用程序的真实ID.该值也已更改为正确的广告单元ID,如https://developers.google.com/admob/android/quick-start所示.我还在MainActivity.kt中调用了这个函数:

MobileAds.initialize(this, resources.getString(R.string.banner_ad_unit_id)) 
Run Code Online (Sandbox Code Playgroud)

但是,问题无法解决.它仍然打印如下:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.easyapps.cryptnote, PID: 3991
    java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider: java.lang.IllegalStateException: 

    ******************************************************************************
    * The Google Mobile Ads SDK was initialized incorrectly. AdMob publishers    *
    * …
Run Code Online (Sandbox Code Playgroud)

sdk android ads kotlin

36
推荐指数
7
解决办法
4万
查看次数

如何在 Jetpack Compose 中删除 TabRow 的下划线?

我很努力地删除 的下划线TabRow,但没有成功。这是代码:

@ExperimentalPagerApi
@Composable
fun Tabs(pagerState: PagerState) {
    val tabs = listOf(R.string.add, R.string.add)
    val scope = rememberCoroutineScope()
    val currentPage = pagerState.currentPage
    TabRow(
        modifier = Modifier
            .padding(start = 36.dp, top = 16.dp, end = 36.dp)
            .clip(shape = RoundedCornerShape(16.dp)),
        selectedTabIndex = currentPage,
        backgroundColor = Color.Transparent,
        tabs = {
            tabs.forEachIndexed { index, tab ->
                Tab(
                    modifier = Modifier.clip(RoundedCornerShape(16.dp)),
                    text = {
                        Text(text = stringResource(id = tab))
                    },
                    selected = currentPage == index,
                    onClick = {
                        scope.launch {
                            pagerState.animateScrollToPage(index)
                        }
                    }
                ) …
Run Code Online (Sandbox Code Playgroud)

android android-tabs android-jetpack-compose

11
推荐指数
1
解决办法
3101
查看次数

为什么 id 被删除?

在我的 Android 项目中,我使用视图绑定:

buildFeatures {
     dataBinding = true
     viewBinding = true
}
Run Code Online (Sandbox Code Playgroud)

理想情况下我只会使用dataBinding,但在这种情况下我总是需要使用标签

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

在 XML 布局中以使用它。这就是为什么我只在真正需要在 XML 中绑定数据的地方使用它。在其他情况下,我会使用viewBinding该插件,因为该插件'kotlin-android-extensions'已被弃用。一切正常,但是运行时出现以下问题Analyze -> Inspect code。完成后,会发现一些未使用的资源(在 下Android -> Lint -> Perfomance -> Unused resources),并且我会删除所有这些资源,因为我不需要它们,它还会删除为 XML 中的所有视图分配的 ID。但是,带有标签的 XML 中的 ID<layout ...> </layout>不会被删除。仅在使用时才会删除 ID viewBinding

我不是专家,但我认为删除未使用的资源与 s 的 ID 没有任何关系View,并且这种情况不应该发生。

每次优化之后(意味着清理未使用的资源中的项目),我总是必须分配 ID,这是非常低效的,特别是当项目变得更大并且有更多的ViewID 时。

为什么会发生这种情况以及如何防止这种情况发生?

android android-studio android-databinding android-viewbinding

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

从数据类连接 Kotlin 中的字符串数组

我有一个Class

data class Data(val string: String, val state: Boolean)
Run Code Online (Sandbox Code Playgroud)

那个类是一个数组

val data = ArrayList<Data>()
data.add(Data("String 1", false)
data.add(Data("String 2", true)
data.add(Data("String 3", true)
data.add(Data("String 4", false)
Run Code Online (Sandbox Code Playgroud)

我只需要连接true像这样的字符串

val result = "String 2;String 3"
Run Code Online (Sandbox Code Playgroud)

我看了一下joinToString()方法,但不知道在这种情况下如何处理。还有一件事是,我需要稍后将这些连接的字符串作为 Array 返回。

如何最佳实现?

android kotlin

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