小编ksg*_*rkn的帖子

Safeargs库不会生成方向类

我使用导航库和safeargs来传递数据.我像这样定义片段的参数.

<fragment
        android:id="@+id/otherFragment"
        android:name="com.asd.navigate.OtherFragment"
        android:label="OtherFragment">
        <argument
            android:name="screenTitle"
            android:defaultValue="0"
            app:type="string" />
    </fragment>
Run Code Online (Sandbox Code Playgroud)

生成的OtherFragmentArgs,我可以使用它但是当我单击"make project"时,OtherFragmentDirection类不生成.是那个错误还是我必须做一些与众不同的事情.

Thnx的建议.

buildscript {
    ...
    dependencies {
       ...
        classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha01"

    }
}
Run Code Online (Sandbox Code Playgroud)

的build.gradle

apply plugin: "androidx.navigation.safeargs"
Run Code Online (Sandbox Code Playgroud)

MainActivity.kt

在此输入图像描述

kotlin android-navigation android-jetpack

24
推荐指数
11
解决办法
3304
查看次数

添加没有敏感权限的新版本时,"发布声明敏感权限"错误

我在播放商店中添加apk到alpha和beta时出现此错误.生产是正常的.

我找到了这个答案.

谷歌播放控制台说"你不能编辑这个应用程序,直到你创建一个新的应用程序版本声明敏感权限"如何解决它?

警告您的Apk正在使用需要隐私策略的权限:(android.permission.READ_PHONE_STATE)

我既不使用read_phone_state权限也不使用sms,调用日志权限

我已经在下面添加了屏幕截图我的谷歌游戏商店帐户.

在此输入图像描述

我看不出真正的问题在哪里.此页面仅表示存在错误.

这是我的所有权限

<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
    <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />

    <uses-permission android:name="android.permission.WRITE_SETTINGS"
        tools:ignore="ProtectedPermissions" />
    <uses-permission android:name="android.permission.READ_SYNC_STATS" />
    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" …
Run Code Online (Sandbox Code Playgroud)

android store google-play google-play-console

9
推荐指数
2
解决办法
3790
查看次数

按admob广告类型是否存在收入不平等

我的应用程序中有3种广告类型。展示次数最高的奖励广告,但不知何故,横幅广告的收入也要比奖励广告高。奖励广告的展示次数是非页内广告但收入不变的三倍。

在此处输入图片说明

在最初的几周内,没有这样的事情,然后收入突然下降。

在此处输入图片说明

如果某人以前有问题并且知道为什么,可以帮助我吗?我怀疑自己制作的奖励广告过多,但找不到任何文档

感谢您的任何建议或帮助

android interstitial admob adbannerview admob-rewardedvideoad

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

如何在协调器布局中添加下拉刷新

我有一个AppBarRecyclerViewin CoordiantorLayout。SwipeToRefresh 必须全屏显示,但RecyclerView不能向下滚动。

    <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="128dp"/>

    </com.google.android.material.appbar.AppBarLayout>

    <androidx.recyclerview.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />


    <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" />


</androidx.coordinatorlayout.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

类

如何在没有库的协调器布局中添加全屏下拉刷新。

android swiperefreshlayout android-recyclerview android-coordinatorlayout android-appbarlayout

9
推荐指数
3
解决办法
1550
查看次数

为什么我收到"SMS和CALL_LOG权限警告"

我在我的应用程序中有很多权限,但我没有任何call_log权限,但我从播放控制台收到此警告.这是常见警告或下面的此权限是否隐藏了call_log权限.

在此输入图像描述

 <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.WAKE_LOCK" />
        <uses-permission android:name="android.permission.CALL_PHONE" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.READ_CONTACTS" />
        <uses-permission android:name="android.permission.WRITE_CONTACTS" />
        <uses-permission android:name="android.permission.BLUETOOTH" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.CAMERA" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
        <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
        <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
        <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
        <uses-permission android:name="android.permission.GET_ACCOUNTS" />
        <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
        <uses-permission android:name="android.permission.VIBRATE" />
        <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
        <uses-permission android:name="android.permission.RECORD_AUDIO" />

        <uses-permission android:name="android.permission.WRITE_SETTINGS"
            tools:ignore="ProtectedPermissions" />
        <uses-permission android:name="android.permission.READ_SYNC_STATS" />
        <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
        <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" /> …
Run Code Online (Sandbox Code Playgroud)

permissions android google-play

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

AAPT:错误:找不到属性android:forceDarkAllowed

我试图使用android黑暗主题。我安装了android studio 3.5预览版。

compileSdkVersion 28目标SdkVersion 28

但仍然出现此错误。这是黑暗主题错误还是我做错了什么?

build.gradle{
dependencies {
    // ...
    implementation 'com.google.android.material:material:1.1.0-alpha06'
    // ...
  }}
Run Code Online (Sandbox Code Playgroud)

styles.xml

<style name="Theme.MyApp" parent="Theme.MaterialComponents.DayNight">
    <item name="android:forceDarkAllowed">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

项目链接

https://github.com/googlesamples/android-DarkTheme

android android-theme android-styles

8
推荐指数
2
解决办法
3255
查看次数

改造通用响应处理程序

我希望以单一方法处理我的所有回复。目的是在响应代码不是 3 时调用服务,当响应代码为 3 时,我打算先刷新令牌,然后再调用相同的服务。

我创建了一个Basecallback类来捕获一个方法,但我看不到日志,也无法捕获断点。

BASECALLBACK.class

public class BaseCallBack<T> implements Callback<T> {

 @Override
 public void onResponse(Call<T> call, Response<T> response) {

     if (!response.isSuccessful()){
         Log.d("BaseCallback","Response Fail");
     }
 }

 @Override
 public void onFailure(Call<T> call, Throwable t) {
     t.toString();
 }
}
Run Code Online (Sandbox Code Playgroud)

调用方法

 ApiManager.getInstance().getUsers().enqueue(new BaseCallBack<List<User>>() {
            @Override
            public void onResponse(Call<List<User>> call, Response<List<User>> response) {

                if (response.isSuccessful()){

                }
            }

            @Override
            public void onFailure(Call<List<User>> call, Throwable t) {

            }
        });
Run Code Online (Sandbox Code Playgroud)

我只想处理我的服务单一方法。

performance android response retrofit retrofit2

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

我可以将exoplayer缓冲数据发送到其他活动exoplayer

我有一个exoplayer我的第一个活动,当我点击全屏按钮时,我打开一个新的VideoActivity全屏幕.我只是发送当前位置并启动VideoActivity这个位置.

  TrackSelector trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory);
  SimpleExoPlayer player = ExoPlayerFactory.newSimpleInstance(context, trackSelector);

  playerView.setPlayer(player);
  player.prepare(contentMediaSource);
  player.setPlayWhenReady(true);
  player.seekTo(positionFromFirstActivity);
Run Code Online (Sandbox Code Playgroud)

但问题是当打开新活动并从当前位置开始exoplayer时.Exoplayer再次启动缓冲.

有没有办法将缓冲数据传递给SecondActivity.

android video-streaming exoplayer exoplayer2.x

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

删除并重新安装应用程序后如何查看购买历史记录

我正在开发一个允许用户使用 In App Purchase 购买的应用程序,我想在购买后删除广告。我可以使用下面的代码成功购买

BillingFlowParams flowParams = BillingFlowParams.newBuilder()
                        .setSku("android.test.purchased")
                        .setType(BillingClient.SkuType.INAPP)
                        .build();
mBillingClient.launchBillingFlow(getActivity(), flowParams);
Run Code Online (Sandbox Code Playgroud)

但是当我再次打开应用程序并在下面调用此方法时,我看不到 queryPurchaseHistoryAsync 的结果。

mBillingClient.queryPurchaseHistoryAsync(BillingClient.SkuType.INAPP, new PurchaseHistoryResponseListener() {
            @Override
            public void onPurchaseHistoryResponse(int responseCode, List<Purchase> purchasesList) {

                purchasesList.size();
            }
        });
Run Code Online (Sandbox Code Playgroud)

购买列表.大小()== 0

“queryPurchaseHistoryAsync”方法无法显示测试购买还是我做错了什么?

编辑:删除并再次安装应用程序后,queryPurchaseHistoryAsync 方法是否检查购买。

android in-app-purchase in-app-billing android-inapp-purchase

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

PeriodicWorkRequest不会在tick上重复

我将PeriodicWorkRequest设置为15分钟.但它有时重复10次有时17分钟.如何设置最大几秒的偏差.

 val workRequest = PeriodicWorkRequest.Builder(NotificationWork::class.java, 15, TimeUnit.MINUTES).build()
        WorkManager.getInstance().enqueue(workRequest)
Run Code Online (Sandbox Code Playgroud)

13:10

13:26

13:51

14:01

我可以在刻度线上设置一个类似闹钟的后台工作,否则Workmanager会像这样工作吗?

我的代码块就像上面一样.

kotlin android-workmanager

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