草庐IT

android - TagManagerService 出现 ANR

coder 2023-12-11 原文

我遇到了一个我无法弄清楚的问题。 当我在第一个 Activity 屏幕上按 backPress 键转到主窗口时,会出现此 ANR。 按下后,我尝试返回应用程序,出现白屏,然后是黑屏。 一两分钟后,ANR 消息弹出窗口出现。

那是我的 gradle play-services 相关

def googlePlayServicesVersion = '9.0.2'


compile "com.google.android.gms:play-services:$googlePlayServicesVersion"
compile "com.google.android.gms:play-services-analytics:$googlePlayServicesVersion"
compile "com.google.android.gms:play-services-auth:$googlePlayServicesVersion"
compile "com.google.android.gms:play-services-vision:$googlePlayServicesVersion"

Starting window AppWindowToken{44f94e90 token=Token{42a85dc8 ActivityRecord{430f4b70 u0 com.ioa***.****/com.******.****.activity.SignUpInTabActivity_ t84}}} timed out

ANR in com.ioa***.****
      PID: 24075
      Reason: Executing service com.ioacom.ioa***.****/com.google.android.gms.tagmanager.TagManagerService
      Load: 4.49 / 4.91 / 5.12
      CPU usage from 5972ms to 0ms ago:
      1.3% 372/adbd: 0.1% user + 1.1% kernel / faults: 406 minor
      1.1% 953/system_server: 0.6% user + 0.5% kernel / faults: 6 minor
      0.1% 1//init: 0% user + 0.1% kernel / faults: 52 minor
      0.3% 1053/com.android.systemui: 0.3% user + 0% kernel / faults: 2 minor
      0.3% 18921/kworker/0:2: 0% user + 0.3% kernel
      0.1% 3/ksoftirqd/0: 0% user + 0.1% kernel
      0.1% 8/rcu_preempt: 0% user + 0.1% kernel
      0.1% 144/mmcqd/0: 0% user + 0.1% kernel
      0% 204/servicemanager: 0% user + 0% kernel
      0% 224/mediaserver: 0% user + 0% kernel
      0% 1097/wpa_supplicant: 0% user + 0% kernel
      0.1% 1749/mpdecision: 0.1% user + 0% kernel
      0% 17052/kworker/u8:7: 0% user + 0% kernel
      0% 20159/kworker/0:3: 0% user + 0% kernel
      0% 24075/com.ioa***.******: 0% user + 0% kernel
      9.3% TOTAL: 2.8% user + 6.2% kernel + 0.1% iowait
      CPU usage from 2824ms to 3341ms later:
      3.8% 953/system_server: 0% user + 3.8% kernel / faults: 1 minor
      3.8% 967/ActivityManager: 0% user + 3.8% kernel
      9% TOTAL: 0% user + 0% kernel + 9% iowait

My Launcher Activity 应该在用户第一次进入应用时出现:

public class FirstActivity extends AppCompatActivity {

    public void onCreate() {
        if (userDataAccess.getUserProfile() != null) {
            startDashBoardActivity();
            finish();
        } else if (!preferences.isFirstAccess().get()) {
            startLoginActivity();
        }
    }

} 

我的登录 Activity :

@EActivity(R.layout.activity_with_tabs_layout)
public class SignUpInTabActivity extends AppCompatActivity {

    @ViewById(R.id.toolbar)
    Toolbar toolbar;

    @ViewById(R.id.tabs)
    TabLayout tabLayout;

    @ViewById(R.id.viewpager)
    ViewPager viewPager;

    private LoginFragment loginFragment;

    @AfterViews
    public void init(){
        setSupportActionBar(toolbar);
        ViewCompat.setElevation(tabLayout, 4);
        if(getSupportActionBar() != null) {
            toolbar.setSubtitleTextColor(ContextCompat.getColor(this, android.R.color.white));
            toolbar.setTitleTextColor(ContextCompat.getColor(this, android.R.color.white));
            toolbar.setTitle(R.string.*****);
            toolbar.setSubtitle(R.string.flavor);
        }
        setupViewPager();
    }

    @UiThread
    public void setupViewPager() {
        loginFragment = LoginFragment_.builder().build();
        ViewPagerTabsAdapter adapter = new ViewPagerTabsAdapter(getSupportFragmentManager());
        adapter.addFragment(loginFragment, getString(R.string.login).toUpperCase());
        adapter.addFragment(SignUpFragment_.builder().build(), getString(R.string.register_user).toUpperCase());
        viewPager.setAdapter(adapter);
        tabLayout.setupWithViewPager(viewPager);
    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        loginFragment.onActivityResult(requestCode,resultCode,data);
    }

}

最佳答案

这似乎是 play-services 9+ 的问题。

我的第一个解决方法是将播放服务回滚到 8.4.0,然后一切都恢复正常。

我一直在寻找解决方案,因为以上都不满足我,而

我发现问题出在特定的“通用播放服务”上,我不明白为什么它适用于 8.4.0 而不是 9+。

我的解决方案是删除下面的行

compile "com.google.android.gms:play-services:9.0.2"

只保留具体的(这是最好的方法,不管所讨论的问题是什么)

compile "com.google.android.gms:play-services-analytics:9.0.2"
compile "com.google.android.gms:play-services-auth:9.0.2"
compile "com.google.android.gms:play-services-vision:9.0.2" 

而且有效!

我真的很想知道为什么错误是 ANR。

关于android - TagManagerService 出现 ANR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37859877/

有关android - TagManagerService 出现 ANR的更多相关文章

  1. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  2. ruby - 使用 rbenv 和 ruby​​-build 构建 ruby​​ 失败,出现 undefined symbol : SSLv2_method - 2

    我正在尝试在配备ARMv7处理器的SynologyDS215j上安装ruby​​2.2.4或2.3.0。我用了optware-ng安装gcc、make、openssl、openssl-dev和zlib。我根据README中的说明安装了rbenv(版本1.0.0-19-g29b4da7)和ruby​​-build插件。.这些是随optware-ng安装的软件包及其版本binutils-2.25.1-1gcc-5.3.0-6gconv-modules-2.21-3glibc-opt-2.21-4libc-dev-2.21-1libgmp-6.0.0a-1libmpc-1.0.2-1libm

  3. ruby - 为什么 return 关键字会导致我的 'if block' 出现问题? - 2

    下面的代码工作正常:person={:a=>:A,:b=>:B,:c=>:C}berson={:a=>:A1,:b=>:B1,:c=>:C1}kerson=person.merge(berson)do|key,oldv,newv|ifkey==:aoldvelsifkey==:bnewvelsekeyendendputskerson.inspect但是如果我在“ifblock”中添加return,我会得到一个错误:person={:a=>:A,:b=>:B,:c=>:C}berson={:a=>:A1,:b=>:B1,:c=>:C1}kerson=person.merge(berson

  4. ruby - 安装 tiny_tds 在 mac os 10.10.5 上出现错误 - 2

    我正在使用macos,我想使用ruby​​驱动程序连接到sqlserver。我想使用tiny_tds,但它给出了缺少free_tds的错误,但它已经安装了。怎么能过这个?~brewinstallfreetdsWarning:freetds-0.91.112alreadyinstalled~sudogeminstalltiny_tdsBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtiny_tds:ERROR:Failedtobuildgemnativeextension.完整日志如下:/System

  5. ruby - 如何让几条 haml 线出现在同一行上? - 2

    我有以下haml:9%strongAskedby:10=link_to@user.full_name,user_path(@user)11.small="(#{@question.created_at.strftime("%B%d,%Y")})"这当前将链接和日期放在不同的行上,当它看起来像“链接(日期)”并且日期的类跨度为小...... 最佳答案 您的代码将生成类似这样的html:Askedby:UsernameApril26,2011当您使用类似.small的东西(即使用点而不指定元素类型)时,haml会创建一个implicit

  6. ruby - 获取数组中值的最大连续出现次数 - 2

    下面有没有更优雅的方法来实现这个:输入:array=[1,1,1,0,0,1,1,1,1,0]输出:4我的算法:streak=0max_streak=0arr.eachdo|n|ifn==1streak+=1elsemax_streak=streakifstreak>max_streakstreak=0endendputsmax_streak 最佳答案 类似于w0lf'sanswer,但通过从chunk返回nil来跳过元素:array.chunk{|x|x==1||nil}.map{|_,x|x.size}.max

  7. ruby - 按数组中出现的频率排序 - 2

    有没有一种有效的方法来做到这一点。我有一个数组a=[1,2,2,3,1,2]我想按升序输出出现的频率。示例[[3,1],[1,2],[2,3]]这是我的ruby​​代码。b=a.group_by{|x|x}out={}b.eachdo|k,v|out[k]=v.sizeendout.sort_by{|k,v|v} 最佳答案 a=[1,2,2,3,1,2]a.each_with_object(Hash.new(0)){|m,h|h[m]+=1}.sort_by{|k,v|v}#=>[[3,1],[1,2],[2,3]]

  8. ruby - 使用 SizedQueue 在 ruby​​ 代码中出现死锁 - 2

    我认为我对线程在ruby​​中的工作原理存在根本性的误解,我希望获得一些见解。我想要一个简单的生产者和消费者。首先,生产者线程从文件中提取行并将它们粘贴到SizedQueue中;当那些用完时,在末端贴上一些token,让消费者知道事情已经完成。require'thread'numthreads=2filename='edition-2009-09-11.txt'bq=SizedQueue.new(4)producerthread=Thread.new(bq)do|queue|File.open(filename)do|f|f.eachdo|r|queue现在有几个消费者。为简单起见,让

  9. jquery - Ruby 1.9.1、Rails 2.3.2 和 jrails 0.4 出现 "rescue in const_missing"错误 - 2

    我最近开始了一个项目,团队决定我们希望使用jQuery而不是Prototype/Scriptaculous来满足我们的javascript需求。我们设置了我们的项目,并开始切换。插件已安装viatheseinstructions,一切都按计划进行。不久之后,当尝试运行“./script/server”时,我们收到以下错误:=>Rails2.3.2applicationstartingonhttp://0.0.0.0:3000/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.2/lib/active_support/depende

  10. ruby-on-rails - 旧的 Ruby 错误在我的 Ruby on Rails 应用程序中反复出现,与 Class.create 和 delayed_job 相关 - 2

    这个错误已经有好几个月了,在这里:http://www.ruby-forum.com/topic/1094002其中显示代码更改的两个链接:https://github.com/godfat/ruby/commit/f4e0e8f781b05c767ad2472a43a4ed0727a75708https://github.com/godfat/ruby/commit/c7a6cf975d88828c2ed27d253f41c480f9b66ad6我有Ruby1.9.2和rvm。我会把这些更改粘贴到适当的文件中,但我不知道如何粘贴。这在几天前就奏效了。我不能像这样执行RubyonRai

随机推荐