小编rin*_*ess的帖子

SecurityException:无法为用户0找到提供程序null; 在Android 8.0上的ActiveAndroid上

我有一个使用ActiveAndroid的应用程序,它一直工作正常.然而; 现在当我尝试将模型保存到数据库时,我得到了一个SecurityException.

堆栈是:

Error saving model java.lang.SecurityException: Failed to find provider null for user 0; expected to find a valid ContentProvider for this authority 
at android.os.Parcel.readException(Parcel.java:1942) 
at android.os.Parcel.readException(Parcel.java:1888) 
at android.content.IContentService$Stub$Proxy.notifyChange(IContentService.java:801) 
at android.content.ContentResolver.notifyChange(ContentResolver.java:2046) 
at android.content.ContentResolver.notifyChange(ContentResolver.java:1997) 
at android.content.ContentResolver.notifyChange(ContentResolver.java:1967) 
at com.activeandroid.Model.save(Model.java:162)
[.... local stack removed]
Run Code Online (Sandbox Code Playgroud)

还有其他人经历过这个吗?我们是否需要在AndroidManifest.xml中指定Content Provider

对不起,但我还没有一个孤立的例子.我会努力把东西放在一起.

提前致谢

android securityexception activeandroid android-8.0-oreo

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

使用gradle或android studio内部运行测试会导致NoClassDefFoundError

我知道,在没有具体细节的情况下提出这类问题非常困难; 有问题的项目是专有的,我无法在任何其他项目中重现该问题.

所以我在build.gradle文件中添加了以下内容:

androidTestCompile('com.jakewharton.espresso:espresso:1.1-r3') {
    exclude group: 'com.square.dagger'
}
androidTestCompile('com.jakewharton.espresso:espresso-support-v4:1.1-r3') {
    exclude group: 'com.android.support'
}
Run Code Online (Sandbox Code Playgroud)

我也确定了两种产品口味,但都没有.我的测试类是:

   public class MainActivityInstrumentationTest extends ActivityInstrumentationTestCase2<MainActivity> {
       private MainActivity myActivity;
       private Spinner spinner;

       public MainActivityInstrumentationTest() {
         super(MainActivity.class);
        }
        protected void setUp() throws Exception {
          super.setUp();

          myActivity = getActivity();
          spinner = (Spinner)myActivity.findViewById(R.id.watch_category);
        }

        public void testTextView() {
          assertOnScreen(myActivity.getWindow().getDecorView(), spinner);
        }
    }
Run Code Online (Sandbox Code Playgroud)

现在在工作室,它发现MainActivity.class很好,并添加正确的导入.然而; 当我运行测试时,构造函数抛出一个异常,即找不到.class的完全限定路径.我试过跑步gradle,--debug我没有看到任何与众不同的东西.生成的apk文件有一个classes.dex并使用dex2jar我在那里看到MainActivity.class.因此,在测试执行期间找不到类文件的原因有点丢失.有没有人有任何其他方法,我可以尝试调试这种情况,就像我说我有其他项目工作得很好,我无法修改它们来展示这种行为.

对此的任何帮助将不胜感激.

编辑:来自logcat的完整跟踪

W/dalvikvm( 4371): Class resolved by unexpected DEX: Landroid/support/v7/app/ActionBarActivity;(0xa501f5e8):0x94c6a000 ref [Landroid/support/v4/app/FragmentActivity;] Landroid/support/v4/app/FragmentActivity;(0xa501f5e8):0x9528b000
W/dalvikvm( 4371): …
Run Code Online (Sandbox Code Playgroud)

android android-studio android-gradle-plugin android-espresso

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

BottomSheetDialogFragment 在 LeakCanary 2 中显示内存泄漏,但我不确定为什么?

我浏览了许多帖子,但没有找到任何可以帮助我理解 LeakCanary 报告泄漏的原因。我有一个带有 a 的主要活动,com.google.android.material.bottomappbar.BottomAppBar它显示了 a BottomSheetDialogFragment。当您在底部工作表中选择一个项目时,它会更新一些文本,然后关闭对话框片段。现在使用 LeakCanary 运行它会在出现对话框并选择一个项目时显示泄漏。

泄漏看起来像:

    ====================================
    HEAP ANALYSIS RESULT
    ====================================
    1 APPLICATION LEAKS

    References underlined with "~~~" are likely causes.
    Learn more at https://squ.re/leaks.

    152090 bytes retained by leaking objects
    Signature: 3841703253a9bf9893936b1dd318c9dd54bf5a8
    ????
    ? GC Root: System class
    ?
    ?? android.app.ActivityThread class
    ?    Leaking: NO (MainActivity? is not leaking and a class is never leaking)
    ?    ? static ActivityThread.sCurrentActivityThread
    ?? android.app.ActivityThread instance
    ?    Leaking: NO (MainActivity? is not leaking)
    ?    ? ActivityThread.mActivities …
Run Code Online (Sandbox Code Playgroud)

memory-leaks leakcanary android-bottomnav

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