小编ElD*_*ino的帖子

Android 6.0 Marshmallow:片段动画的奇怪错误

我在应用程序商店中的一个应用程序与Android 5.0完美配合,但从今天起我的设备升级到6.0我得到了奇怪的错误.我把它缩小到碎片过渡动画.

ftrans.setCustomAnimations(inAnim, outAnim, inAnim, outAnim);
Run Code Online (Sandbox Code Playgroud)

没有这一行,我的应用程序也可以在6.0上正常工作,我得到这个错误:

10-14 14:36:51.016 23750-23820/? A/libc: Fatal signal 7 (SIGBUS), code 1, fault addr 0xb1 in tid 23820 (hwuiTask1)
10-14 14:36:51.118 200-200/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
10-14 14:36:51.118 200-200/? A/DEBUG: Build fingerprint: 'google/hammerhead/hammerhead:6.0/MRA58K/2256973:user/release-keys'
10-14 14:36:51.118 200-200/? A/DEBUG: Revision: '0'
10-14 14:36:51.118 200-200/? A/DEBUG: ABI: 'arm'
10-14 14:36:51.118 200-200/? A/DEBUG: pid: 23750, tid: 23820, name: hwuiTask1  >>> com.xxx.xxx <<<
10-14 14:36:51.118 200-200/? A/DEBUG: …
Run Code Online (Sandbox Code Playgroud)

animation android android-6.0-marshmallow

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

Firebase +权限

我刚刚将一个应用程序从Firebase 9.0.0更新到Firebase 9.0.2.我使用短信+广告.

compile 'com.google.firebase:firebase-messaging:9.0.2' 
compile "com.google.firebase:firebase-ads:9.0.2"
Run Code Online (Sandbox Code Playgroud)

现在已经出现了许多不必要的许可

android:name="android.permission.READ_PHONE_STATE"
android:name="android.permission.READ_EXTERNAL_STORAGE"
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
Run Code Online (Sandbox Code Playgroud)

我没有在任何地方添加这些权限,因此它们必须来自Firebase.我知道我的客户不喜欢这些权限,所以我删除了它们

<uses-permission
    android:name="android.permission.READ_PHONE_STATE"
    tools:node="remove" />
<uses-permission
    android:name="android.permission.READ_EXTERNAL_STORAGE"
    tools:node="remove" />
<uses-permission
    android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    tools:node="remove" />
Run Code Online (Sandbox Code Playgroud)

我的应用程序仍然有效,消息和广告仍然有效,但我仍然怀疑我的怀疑.

为什么Firebase会添加这些权限,是否可以像我一样删除它们?

permissions android admob firebase firebase-cloud-messaging

11
推荐指数
2
解决办法
6834
查看次数

C#泛型,交叉引用状态模式的类

我试图进入C#泛型并创建了一个状态模式的状态机,现在我尝试重构.

我有一个状态,它引用了它正在处理的对象.

public abstract class AbstractState<T> where T : StatefulObject {

    protected T statefulObject;

    public AbstractState(T statefulObject) {
        this.statefulObject = statefulObject;
    }

}
Run Code Online (Sandbox Code Playgroud)

我有一个有状态的对象,这应该引用它的当前状态.

public abstract class StatefulObject<T> : MonoBehaviour where T : AbstractState<StatefulObject<T>> {

    public T state;

}
Run Code Online (Sandbox Code Playgroud)

但它不起作用("类型不能用作泛型类型或方法中的类型参数't').

我想要实现的是这样的:

public class Monster : StatefulObject<MonsterState> {

}

public abstract class MonsterState : AbstractState<Monster> {

}
Run Code Online (Sandbox Code Playgroud)

这可能吗?如果不是这样,还有另一个吗?谢谢.

c# generics

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

Gradle:找不到符号变量

我创建了一个名为"UtilsLib"的新项目.在这个项目中,我创建了几个模块,所有库模块,其中一个称为'utils'.

为了测试lib,我创建了一个名为"Test1"的新项目.我通过添加将'UtilsLib'项目的'utils'模块添加到'Test1'

include ':utils'
project(':utils').projectDir = new File('/Users/xyz/AndroidStudioProjects/UtilsLib/utils')
Run Code Online (Sandbox Code Playgroud)

到'Test1'的'settings.gradle'文件.

我还在我的应用程序模块中添加了对'utils'的依赖.

compile project(path: ':utils')
Run Code Online (Sandbox Code Playgroud)

从我的util模块导入类'MarketNames'工作,IDE没有显示任何错误,但当我尝试编译时,我总是得到

:app:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
/Users/xyz/AndroidStudioProjects/test2/app/src/main/java/de/xyz/test2/MainActivity.java
Error:(17, 31) error: cannot find symbol variable MarketNames
:app:compileDebugJavaWithJavac FAILED
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Run Code Online (Sandbox Code Playgroud)

为什么Java找不到我的类MarketNames?我在调试模式下运行,没有Proguard.

编辑:我的lib项目中的类结构是这样的:

public class Market {

    public enum MarketNames {
       GOOGLE, AMAZON
    }  

}
Run Code Online (Sandbox Code Playgroud)

我在我的测试项目中使用它,如下所示:

import de.xyz.utilslib.market.Market;

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

    Log.d("Test", Market.MarketNames.GOOGLE.name()); …
Run Code Online (Sandbox Code Playgroud)

java android

5
推荐指数
0
解决办法
1758
查看次数

DrawerLayout无法使用Android 4.4和SurfaceView

今天我再次遇到了一个"机器人"时刻,这让我完全无能为力.

我有一个应用程序,它包含一个DrawerLayout,它包含一个RelativeLayout作为SurfaceView(surfaceViewContainer)的容器,另一个ViewGroup(RelativeLayout的子类)作为导航.

当应用程序启动时,在onCreate中我膨胀布局并将SurfaceView添加到surfaceViewContainer.

在带有4.1.2的三星S2和带有4.3的S3上一切正常,我可以看到SurfaceView绘制,我可以通过滑动手势或主页按钮打开和关闭抽屉.然后我在Android 4.4上使用Nexus 5和Nexus 10进行了测试,在这两个设备上抽屉都不会出现.即使按下主页按钮也不会做任何事情.

更奇怪的是:我可以在添加SurfaceView之前打开抽屉,当我这样做时,即使在添加SurfaceView之后我也可以与抽屉进行交互,即使在Android 4.4上,所以打开/关闭也可以.

所以我的问题是:任何人之前都经历过这样的事情或者有一些建议或知道从Android 4.3到4.4可能有什么变化?

ps:我已经在其他应用程序中成功使用了DrawerLayout,只是没有使用SurfaceView,所以我认为问题就在那里.

谢谢

android surfaceview drawerlayout android-4.3-jelly-bean android-4.4-kitkat

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

FlexJson和@JSON注释 - @JSON(name ="")不起作用

我刚刚切换到FlexJson,我已经遇到了问题.

http://flexjson.sourceforge.net/上的文档章节Controlling JSON naming with @JSON说明:

对象序列化时,JSON对象上的属性名称由Java属性的名称确定.这意味着使用了getter方法的名称或字段名称.但是,有时JSON输出与Java对象使用的名称不匹配.您可以使用@JSON注释来控制它.例如:

    public class Species {
        @JSON(jsonName = "genus")
        private String type;

        private String name;

        @JSON(jsonName="species")
        public String getName() {
           return name;
        }
    }
Run Code Online (Sandbox Code Playgroud)

除了它不起作用.然后他们说:

定义@JSON.jsonName用于序列化和反序列化.

现在,当我查看http://flexjson.sourceforge.net/javadoc/index.html上的javadoc时,我可以看到有4个可选元素属于@JSON注释,这些是

包含名称objectFactory转换器

没有jsonName,就像在例子中一样.

那么我如何让这个注释工作,所以我可以有不同的java和json名称?如何定义此注释元素或使用预定义的元素name

为了澄清,我可以注释@JSON和自动完成推荐@JSON(include),但后来include无法解决...

我正在使用FlexJson 2.1,我导入了flexjson.JSON;

顺便说一下,我知道这个答案/sf/answers/621573151/,但这不是我想要的.我想使用注释.

java annotations flexjson

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

Firebase FCM实践(1个项目与多个应用程序)

我刚刚将我的GCM实施更新到Firebase.

我开始创建一个FCM项目并添加了我的一个应用程序.当我进入第二个应用程序时,我创建了一个新的FCM项目,但后来发现我可以将多个应用程序链接到一个项目,所以我将第二个应用程序链接到我的第一个项目.

现在我将所有应用程序链接到一个项目并且运行良好,我仍然想知道这是否是最好的(最明智的!?)方式.因为现在我每次下载"google-services.json"时都会为我所有链接的应用程序配置内容,即使我现在的应用程序中不需要它(我不确定是否可以删除多余的东西) (我可以吗?)).

只有一个项目还有其他任何后果,还是一件好事?

firebase google-cloud-messaging firebase-cloud-messaging

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