小编Vla*_*vić的帖子

Nougat上的android.os.TransactionTooLargeException

我将Nexus 5X更新为Android N,现在当我在其上安装应用程序(调试或发布)时,我在每个具有附加功能的Bundle的屏幕转换上都会收到TransactionTooLargeException.该应用正在处理所有其他设备.PlayStore上的旧应用程序和大多数相同的代码正在使用Nexus 5X.有人有同样的问题吗?

java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 592196 bytes
   at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3752)
   at android.os.Handler.handleCallback(Handler.java:751)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:154)
   at android.app.ActivityThread.main(ActivityThread.java:6077)
   at java.lang.reflect.Method.invoke(Native Method)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Caused by: android.os.TransactionTooLargeException: data parcel size 592196 bytes
   at android.os.BinderProxy.transactNative(Native Method)
   at android.os.BinderProxy.transact(Binder.java:615)
   at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:3606)
   at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3744)
   at android.os.Handler.handleCallback(Handler.java:751) 
   at android.os.Handler.dispatchMessage(Handler.java:95) 
   at android.os.Looper.loop(Looper.java:154) 
   at android.app.ActivityThread.main(ActivityThread.java:6077) 
   at java.lang.reflect.Method.invoke(Native Method) 
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
Run Code Online (Sandbox Code Playgroud)

android android-7.0-nougat

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

使用XAMPP使用mysql陷入错误2

我正在尝试使用带有apache和MySQL的XAMPP创建一个网页,之后我将使用WordPress创建网页.我在创建主机名和在XAMPP上定义用户权限时遇到问题.当我尝试定义用户权限时,错误2不断出现:

无法读取'C:\ xampp\mysql\lib\plugin \'的目录(错误:2"没有这样的文件或目录")

有人可以帮助并指导我解决这个问题

php mysql wordpress

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

BottomNavigationView 文本在更改时闪烁

这里闪烁:http : //gph.is/2GH9P0b

<android.support.design.widget.BottomNavigationView
       android:id="@+id/navigation"
       style="@style/BottomNavigation"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentBottom="true"
       android:layout_marginEnd="0dp"
       android:layout_marginStart="0dp"
       app:layout_constraintBottom_toBottomOf="parent"
       app:layout_constraintLeft_toLeftOf="parent"
       app:layout_constraintRight_toRightOf="parent"
       app:menu="@menu/navigation" />
Run Code Online (Sandbox Code Playgroud)

样式文件

<style name="BottomNavigation">
    <item name="android:background">@color/colorPrimary</item>
    <item name="itemIconTint">@drawable/nav_bottom_selector</item>
    <item name="itemTextColor">@drawable/nav_bottom_text_selector</item>
</style>
Run Code Online (Sandbox Code Playgroud)

选择器nav_bottom_text_selectornav_bottom_selector具有相同的代码。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@android:color/white" android:state_checked="true"/>
    <item android:color="#6e6e6e" />
Run Code Online (Sandbox Code Playgroud)

MainActivity.class 这是选项卡更改侦听器。但我认为问题不在这里,因为即使我评论这部分,它也一直在闪烁。

navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected (@NonNull MenuItem item) {

        switch (item.getItemId()) {
            case R.id.navigation_exercises:
                // even not replace tabs, just hide and show                          
                fragmentManager.beginTransaction().show(exerciseFragment).hide(workoutFragment).hide(profileFragment).commit();
                SharedPrefsHelper.getInstance().setLastTab(getApplicationContext(), ConsKeys.BOTTOM_TAB_EXERCISE);
                break;
            case R.id.navigation_workouts:
                fragmentManager.beginTransaction().hide(exerciseFragment).show(workoutFragment).hide(profileFragment).commit();
                SharedPrefsHelper.getInstance().setLastTab(getApplicationContext(), ConsKeys.BOTTOM_TAB_WORKOUTS);
                break;

            case R.id.navigation_profile:
                fragmentManager.beginTransaction().hide(exerciseFragment).hide(workoutFragment).show(profileFragment).commit(); …
Run Code Online (Sandbox Code Playgroud)

xml android selector drawable android-bottom-nav-view

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

使用库中的Sample data目录

我用描述的过程中创建的样本数据目录为我的Android应用文章.我想在我的项目之间共享这组样本数据,所以我创建了一个只包含样本数据的库.但据我所知,sampledata文件夹没有被编译到库中.有没有办法在多个Android项目之间共享样本数据?

android sample-data android-layout android-studio

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

Firebase A/B 测试版本定位

我试图使用 Firebase A/B 测试运行 A/B 测试,但仅针对特定版本的应用程序。运行 5 天后,没有任何结果,也没有用户接触到该实验。

之后,我尝试运行相同的 A/B 测试,但没有版本限制,第二天就可以获得第一个结果。

所以我认为我定义版本限制的方式是错误的。我在远程配置中对其进行了测试,但是当我应用相同的版本限制时,远程配置返回了正确的值。以下是我在两种情况下定义版本限制的方式:

在此处输入图片说明

应用程序的版本名称采用以下格式 XYZ(例如 6.51.0、6.51.1)

有什么我想念的吗?如果针对特定版本,测试的启动速度是否会明显变慢?

android firebase firebase-ab-testing

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

当应用程序被 Android 杀死时如何对 FCM 通知进行分组

我想在应用程序被终止时对 FCM 通知进行分组,

我知道当应用程序处于前台时,操作系统正在使用 setGroup 进行分组。

    Notification summaryNotificationWithBackground =
    new NotificationCompat.Builder(mContext)
    .setContentTitle("2 new messages")
    ...
    .extend(wearableExtender)
    .setGroup(GROUP_KEY_EMAILS)
    .setGroupSummary(true)
    .build();
Run Code Online (Sandbox Code Playgroud)

但是当 App 在后台时MyFirebaseMessagingService不会被调用。

那么如何在后台应用程序或应用程序被终止时对消息进行分组。

notifications android

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

在没有上下文的情况下将dp转换为px

有一种非常巧妙的方法可以将dp转换为不带Context的px,它是这样的:

public static int dpToPx(int dp) {
    float density = Resources.getSystem().getDisplayMetrics().density;
    return Math.round((float) dp * density);
}
Run Code Online (Sandbox Code Playgroud)

Google GitHub页面上的每个Google示例中,他们都使用以下方法:

public static int convertDpToPixel(Context ctx, int dp) {
    float density = ctx.getResources().getDisplayMetrics().density;
    return Math.round((float) dp * density);
}
Run Code Online (Sandbox Code Playgroud)

那么第一种方法有什么问题吗?对我来说,它在我所有的应用程序中都能正常工作,但是我想知道在某些情况下它可能会失败吗?

android screen-size pixel-density

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

检查 DrawableRes 是否为 VectorDrawable

我有一个方法可以在 TextView 和 Button 上将 VectorDrawable 设置为 DrawableLeft、DrawableRight 等,但我想让它也适用于普通的 Drawable。那么,有没有办法检查 DrawableRes 的类型,还是应该使用 try/catch?该方法如下所示:

public static void setViewDrawables(@NonNull View view, @DrawableRes int left, @DrawableRes int top, @DrawableRes int right, @DrawableRes int bottom) {
    final Resources resources = view.getResources();
    Drawable vectorDrawableLeft = left != 0 ? VectorDrawableCompat.create(resources, left, view.getContext().getTheme()) : null;
    Drawable vectorDrawableTop = top != 0 ? VectorDrawableCompat.create(resources, top, view.getContext().getTheme()) : null;
    Drawable vectorDrawableRight = right != 0 ? VectorDrawableCompat.create(resources, right, view.getContext().getTheme()) : null;
    Drawable vectorDrawableBottom = bottom != 0 ? …
Run Code Online (Sandbox Code Playgroud)

android android-drawable android-vectordrawable

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

如何调试从 Play 商店安装的 APK(不删除保存的用户数据)

问题

我正在使用一个 Android 应用程序,其中用户数据被保存到由 SQLCipher 加密的数据库中。Android 密钥库用于存储密钥。发生了特定于设备的问题(可能与正在保存的数据有关)。我可能会接触到遇到此问题的设备,但是,据我所知,我可以从该设备中提取的信息非常有限。有什么可能的方法可以以某种方式将调试器附加到加载到设备上的当前 APK 上,或者以某种方式将其替换为可调试版本而不丢失用户数据?

该设备正在运行 android 6.0.1,我正在使用 Android Studio

我在调试发布版 APK 时发现的内容

当我连接装有从 PlayStore 下载的 APK 的 Android 平板电脑时,我能看到的唯一数据是使用 logcat (Android Studio) 的应用程序特定调试日志。当我尝试调试应用程序时,Android Studio 告诉我先卸载现有的 APK,然后才能加载可调试的 APK。但是,这将删除现有数据,这是我不希望发生的。

我试图解决我原来的问题的其他事情

尝试让特定用户向我发送他们有问题的数据库

这将不起作用,因为我无权访问私钥,因此即使我获得了文件,我也无法解密数据。

尝试让特定用户向我发送应用日志

这将不起作用,因为从 Android 4.1 开始,特定于应用程序的日志仅对那些特定应用程序是私有的(除非设备已植根,有问题的设备不是,并且植根它不是真正的选项)。这实际上导致了另一个我有轻微相关的问题。为什么我可以在 logcat 中看到特定于应用程序的日志,即使它们在通过 CatLog 等应用程序查看无根设备上的日志时不可见?

debugging android release apk android-studio

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

致命异常:java.lang.SecurityException:!@Too在Firebase中注册的许多警报(500)

我遇到了崩溃:

Fatal Exception: java.lang.SecurityException: !@Too many alarms (500) registered from pid 27251 uid 11383
       at android.os.Parcel.readException(Parcel.java:1620)
       at android.os.Parcel.readException(Parcel.java:1573)
       at android.app.IAlarmManager$Stub$Proxy.set(IAlarmManager.java:217)
       at android.app.AlarmManager.setImpl(AlarmManager.java:484)
       at android.app.AlarmManager.set(AlarmManager.java:260)
       at com.google.firebase.iid.FirebaseInstanceIdService.zzagl(Unknown Source)
       at com.google.firebase.iid.FirebaseInstanceIdService.zzd(Unknown Source)
       at com.google.firebase.iid.FirebaseInstanceIdService.zza(Unknown Source)
       at com.google.firebase.iid.FirebaseInstanceIdService.zzm(Unknown Source)
       at com.google.firebase.iid.zzb$2.run(Unknown Source)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)
Run Code Online (Sandbox Code Playgroud)

正如您所见,崩溃是在Firebase库中.我读了其他的答案,但所有这些都是关于代码中的警报的使用,就像这个.我只使用Firebase库进行消息,分析和远程配置.

compile "com.google.firebase:firebase-core:$firebaseLibVersion"
compile "com.google.firebase:firebase-config:$firebaseLibVersion"
compile "com.google.firebase:firebase-messaging:$firebaseLibVersion"

ext {
    firebaseLibVersion = '9.6.1'
}
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,问题只发生在三星设备上.所以,我知道为什么它会在三星设备上发生,但我不知道如何修复它.

android galaxy firebase firebase-cloud-messaging

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