小编cas*_*orz的帖子

java.lang.IllegalStateException:无法为v创建图层

我在崩解剂上有这个例外,并且不知道如何重现或原因可能是什么.有没有人有任何关于我应该从哪里开始寻找的指示?仅影响Android 5+.

Fatal Exception: java.lang.IllegalStateException: Unable to create layer for v
       at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
       at android.os.MessageQueue.next(MessageQueue.java:323)
       at android.os.Looper.loop(Looper.java:135)
       at android.app.ActivityThread.main(ActivityThread.java:5585)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
Run Code Online (Sandbox Code Playgroud)

谢谢.

编辑:我想更新它不仅影响Android 5,它似乎影响Android 5+

android android-5.0-lollipop

14
推荐指数
2
解决办法
8161
查看次数

致命异常:java.lang.NoClassDefFoundError:android.support.v7.app.AppCompatDelegateImplV23

在我的最新版本中,我的一些用户(不到0.2%)因为android.support.v7.app.AppCompatDelegateImplV23无法找到而崩溃.我无法重现这个问题,我只收到关于崩解的报道.我用apktool从我的apk中提取文件,我可以AppCompatDelegateImplV23.smali在那里看到.知道会发生什么吗?

这是我在gradle上的编译行:

compile 'com.android.support:appcompat-v7:23+'
Run Code Online (Sandbox Code Playgroud)

这是例外:

Fatal Exception: java.lang.NoClassDefFoundError: android.support.v7.app.AppCompatDelegateImplV23
       at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:133)
       at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:117)
       at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:456)
       at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:59)
       at MyActivityClass.onCreate(MyActivityClass.java:353)
       at android.app.Activity.performCreate(Activity.java:6248)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1125)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2437)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2544)
       at android.app.ActivityThread.access$900(ActivityThread.java:150)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:168)
       at android.app.ActivityThread.main(ActivityThread.java:5845)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)
       at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:117)
Run Code Online (Sandbox Code Playgroud)

编辑:这是我的主要gradle文件:

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
        jcenter() // version plugin support

    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
        classpath 'com.android.tools.build:gradle:1.3.1'

    }
    allprojects {
        repositories {
            jcenter()
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-activity android-support-library

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

我可以在android.support.v7.widget.Toolbar的溢出菜单上使用actionLayout吗?

我试图SwitchCompat在溢出菜单上使用一个小部件,android.support.v7.widget.Toolbar但我无法让它工作,它总是显示为空白.

这是我的菜单定义:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:tools="http://schemas.android.com/tools"
      tools:context="com.oveflowtest.ScrollingActivity">
    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:title="@string/action_settings"
        app:showAsAction="never"/>
    <item android:id="@+id/test"
          app:actionLayout="@layout/testlayout"
          app:showAsAction="never"/>
</menu>
Run Code Online (Sandbox Code Playgroud)

这是testlayout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">
<android.support.v7.widget.SwitchCompat
    android:layout_width="match_parent"
    android:layout_height="match_parent" android:text="test"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

此外,如果我showAsAction改为always而不是never那时它在工具栏上显示就好了,但我不想在那里,我希望它在溢出菜单上,当我按下3个点时打开.

我知道有一个选项可以使用复选标记,但我正在跟随设计要求切换.

谢谢.

android android-appcompat android-compatibility android-toolbar

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

在尝试查找Chromecast时 - 我的应用程序从未为某些用户调用MediaRouter.Callback

我正在将我的应用程序从CastCompanionLibrary中移开,因为我需要支持更多的流媒体设备,而且我的一些用户在使用Chromecast时遇到了问题.我删除了所有不必要的代码并创建了一个应用程序,只是为了查看发现过程中发生了什么,并将其发送给其中一个用户,代码永远不会从媒体路由器获得任何回调.同时他们可以使用CastCompanionLibrary运行我的旧应用程序,它会发现Chromecast很好.

这是我发送给用户的代码,它是一个自包含的类和布局:

    public class MainActivity extends AppCompatActivity {

    private static SimpleDateFormat TIME_ONLY = new SimpleDateFormat("HH:mm:ss.SSS");
    private static Handler handler;
    protected MediaRouter.Callback mMediaRouterCallback;
    boolean isRunning = false;
    private TextView logView;
    private MediaRouter mMediaRouter;
    private MediaRouteSelector mMediaRouteSelector;
    private Timer removeRoutesTimer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        logView = (TextView) findViewById(R.id.log);
        Button sendLog = (Button)findViewById(R.id.send_log);
        sendLog.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent send = new Intent(Intent.ACTION_SENDTO);
                String uriText = "mailto:" + Uri.encode("myemail") +
                        "?subject=" + Uri.encode("Logs") +
                        "&body=" …
Run Code Online (Sandbox Code Playgroud)

android google-cast chromecast

9
推荐指数
0
解决办法
968
查看次数

更新到支持工具后再次获取java.lang.NoClassDefFoundError:android.support.v7.internal.view.menu.i

我已经实现了https://code.google.com/p/android/issues/detail?id=78377上列出的众多解决方案中的一个解决此问题的4.2.2手机,但现在我已更新为支持工具23问题又回来了.如果您查看该问题报告,您会看到自更新以来有很多人遇到同样的问题.NoClassDefFoundError:android.support.v7.internal.view.menu.MenuBuilder上的解决方案也不起作用,因为它们来自https://code.google.com/p/android/issues/detail?id=78377

这是我得到的例外:

java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.i
       at android.support.v7.widget.ActionMenuView.getMenu(ActionMenuView.java:643)
       at android.support.v7.widget.Toolbar.ensureMenu(Toolbar.java:876)
       at android.support.v7.widget.Toolbar.getMenu(Toolbar.java:847)
       at android.support.v7.internal.widget.ToolbarWidgetWrapper.getMenu(ToolbarWidgetWrapper.java:702)
       at android.support.v7.internal.app.ToolbarActionBar.getMenu(ToolbarActionBar.java:583)
       at android.support.v7.internal.app.ToolbarActionBar.populateOptionsMenu(ToolbarActionBar.java:441)
       at android.support.v7.internal.app.ToolbarActionBar$1.run(ToolbarActionBar.java:65)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:776)
       at android.view.Choreographer.doCallbacks(Choreographer.java:579)
       at android.view.Choreographer.doFrame(Choreographer.java:547)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:762)
       at android.os.Handler.handleCallback(Handler.java:800)
       at android.os.Handler.dispatchMessage(Handler.java:100)
       at android.os.Looper.loop(Looper.java:194)
       at android.app.ActivityThread.main(ActivityThread.java:5391)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:525)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
       at dalvik.system.NativeStart.main(NativeStart.java)
Run Code Online (Sandbox Code Playgroud)

我的节目有这个:

-keep class !android.support.v7.internal.view.menu.**,android.support.** {*;}
Run Code Online (Sandbox Code Playgroud)

有解决方案吗 得到了很多用户的抱怨.

android proguard android-support-library android-support-design

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

我在哪里可以提交Play商店或Google Play服务的错误?

我不确切知道bug的位置,我认为它在Play商店,但我猜它可能是Google Play服务.

基本上,手机上有帐户X和Y的用户将使用帐户X在我的应用程序上进行应用程序内购买.然后我将分阶段推出更新,并且将该应用程序安装为帐户X的用户突然将获得帐户Y的更新,应用程序将无法识别已购买的应用内商品.

我与其他开发人员讨论了类似的应用内模型,他们遇到了同样的错误.

我在哪里提交该bug?

谢谢.

android in-app-purchase google-play google-play-services android-inapp-purchase

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

有没有办法使用ExoPlayer重新创建ThumbnailUtils.extractThumbnail

ThumbnailUtils.extractThumbnail()使用MediaMetadataRetriever并且该方法有一个错误finalize()导致一些崩溃.所以我想知道我是否可以使用ExoPlayer来创建我的缩略图?

谢谢.

android android-mediaplayer exoplayer

9
推荐指数
0
解决办法
332
查看次数

然后,即使我停止了服务,Context.startForegroundService()也没有调用Service.startForeground()

所以我的应用程序有一些触发服务和通知的远程操作.在调用startForegroundService和服务尝试启动通知的时间之间,事情可能会发生变化,因此服务会再次检查事物的状态,然后决定要做什么.

因此,如果我的服务决定它不需要运行,它将调用:

stopForeground(true);
stopSelf();
Run Code Online (Sandbox Code Playgroud)

但由于某些原因,这似乎不起作用,因为我在进行这些调用后几乎立即得到此异常.

11-16 13:34:23.488 15099-15099/mypackage E/AndroidRuntime: FATAL EXCEPTION: main
Process: mypackage, PID: 15099
android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground()
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1768)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Run Code Online (Sandbox Code Playgroud)

那我怎么解决这个问题呢?

谢谢.

编辑:

我创建了一个示例项目,它只是startForegroundService在Activity启动时调用,然后在服务上执行此操作:

@Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.i(TAG,"start");
        stopForeground(true);
        stopSelf();
        return super.onStartCommand(intent, flags, startId);
    }
Run Code Online (Sandbox Code Playgroud)

无论我是否使用,它都会崩溃stopForeground(true).

编辑:这似乎解决了它,但似乎真的很丑,必须创建一个假通知只是为了取消它.

@Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.i(TAG,"start");
        String …
Run Code Online (Sandbox Code Playgroud)

android android-service android-8.0-oreo

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

知道什么会导致 android.graphics.HardwareRenderer.nSyncAndDrawFrame 出现 ANR 吗?

我已经看到一些关于此问题的答案,但它们都非常过时(就像他们谈论非常旧的 WebView 版本一样)。

我的应用程序确实使用 WebView,因为它是一个浏览器,它也有广告,而且它们通常也使用 WebView。它还使用 ExoPlayer,我认为一些广告也使用 ExoPlayer 展示。不幸的是,我没有关于这些 ANR 何时发生的任何详细信息,但我确实知道自从将广告中介切换到另一家公司以来,它们发生的次数要多得多。

我看到了禁用硬件加速的建议,但我不明白为什么或何时这样做?对我来说,感觉硬件加速是一件好事?

这是 ANR 的堆栈跟踪:

main (native): tid=1 systid=7983
#00 pc 0x7590c libc.so 
#01 pc 0x795f8 libc.so 
#02 pc 0xda55c libc.so 
#03 pc 0x327d54 libhwui.so 
#04 pc 0x30a2dc libhwui.so 
       at android.graphics.HardwareRenderer.nSyncAndDrawFrame(HardwareRenderer.java)
       at android.graphics.HardwareRenderer.syncAndDrawFrame(HardwareRenderer.java:436)
       at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:658)
       at android.view.ViewRootImpl.draw(ViewRootImpl.java:4664)
       at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4375)
       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3585)
       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2340)
       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9057)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1040)
       at android.view.Choreographer.doCallbacks(Choreographer.java:864)
       at android.view.Choreographer.doFrame(Choreographer.java:791)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1025)
       at android.os.Handler.handleCallback(Handler.java:938)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:255)
       at android.app.ActivityThread.main(ActivityThread.java:8212)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:632)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)
Run Code Online (Sandbox Code Playgroud)

android android-anr-dialog

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

如何使用Visual Studio 2012和Installshield LE创建MSI

我得到了别人制作的Visual Studio解决方案.它有一个使用Installshield LE的安装程序项目.安装程序构建正常,但它生成一个exe,我应该做一个msi.我知道编写该项目的人会生成msi文件,但我没有看到任何选项.这对LE有用吗?

installshield visual-studio visual-studio-2012

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