Подтвердить что ты не робот

Там некоторая ошибка при компоновке загрузки Android, но не эффективна при запуске

Итак, это информация о logcat, которую я получаю. Приложение все еще может работать, но я хочу знать причину, по которой я получаю эту ошибку. Я не понимаю, почему я это понимаю, поэтому даже не знаю, как спросить.

09-26 07:13:33.510  18533-18533/com.gongxxing.gongxxing0921 D/AccessibilityManager﹕ setStateLocked: wasEnabled = false, mIsEnabled = false, wasTouchExplorationEnabled = false, mIsTouchExplorationEnabled = false, wasHighTextContrastEnabled = false, mIsHighTextContrastEnabled = false
java.lang.Throwable: setStateLocked
        at android.view.accessibility.AccessibilityManager.setStateLocked(AccessibilityManager.java:553)
        at android.view.accessibility.AccessibilityManager.tryConnectToServiceLocked(AccessibilityManager.java:636)
        at android.view.accessibility.AccessibilityManager.<init>(AccessibilityManager.java:226)
        at android.view.accessibility.AccessibilityManager.getInstance(AccessibilityManager.java:206)
        at android.view.View.setFlags(View.java:9941)
        at android.view.ViewGroup.initViewGroup(ViewGroup.java:536)
        at android.view.ViewGroup.<init>(ViewGroup.java:525)
        at android.view.ViewGroup.<init>(ViewGroup.java:520)
        at android.view.ViewGroup.<init>(ViewGroup.java:516)
        at android.view.ViewGroup.<init>(ViewGroup.java:512)
        at android.widget.FrameLayout.<init>(FrameLayout.java:119)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.<init>(PhoneWindow.java:2341)
        at com.android.internal.policy.impl.PhoneWindow.generateDecor(PhoneWindow.java:3639)
        at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:4026)
        at com.android.internal.policy.impl.PhoneWindow.getDecorView(PhoneWindow.java:2052)
        at android.support.v7.app.AppCompatDelegateImplV7.onCreate(AppCompatDelegateImplV7.java:148)
        at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:60)
        at com.gongxxing.gongxxing0922.MainActivity.onCreate(MainActivity.java:27)
        at android.app.Activity.performCreate(Activity.java:6142)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1115)

Я сожалею о том, что забыл вставить Основное действие.

Строка 27 -

public class MainActivity extends AppCompatActivity  {

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

super.onCreate(savedInstanceState); является линией 27.

4b9b3361

Ответ 1

Извините, что ответили на этот старый вопрос, но я решил это исключение в своем проекте.

Думаю, что приводит к исключению, мы используем контекст нашей деятельности при ее создании.

Мой код выглядит примерно так:

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


private void regToWx(){
    IWXAPI  api;
    api = WXAPIFactory.createWXAPI(this, Constants.WX_APP_ID, true);
    api.registerApp(Constants.WX_APP_ID);
    String text = "123";
    WXTextObject textObj = new WXTextObject();
    textObj.text = text;

    WXMediaMessage msg = new WXMediaMessage();
    msg.mediaObject = textObj;
    msg.description = text;

    SendMessageToWX.Req req = new SendMessageToWX.Req();
    req.scene = SendMessageToWX.Req.WXSceneSession;
    req.transaction = String.valueOf(System.currentTimeMillis());
    req.message = msg;

    api.sendReq(req);
}

Как метод regToWx нужно создать что-то this, который является контекстом, но я думаю, что контекст не может быть использован (в некотором роде) внутри метода onCreate. Поэтому я просто помещаю его в поток, а затем проблема решена.

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        new Thread(new Runnable() {
        @Override
        public void run() {

            regToWx();
        }
    }).start();

}

Итак, попробуйте выяснить, что вы сделали с помощью метода context in onCreate, выведите этот код из него или просто сделайте код асинхронным.

Ответ 2

Я получал ту же ошибку. Я узнал, что это связано с атрибутом android: sharedUserId = "com.something", который я использовал в файлах манифеста.

Предположим, что в версии 1 вашего приложения есть андроид: sharedUserId в манифесте и инициализирует ContentProvider.

Теперь предположим, что в версии 2 вы удаляете android: sharedUserId из манифеста и пытаетесь получить доступ к ContentProvider, созданному в версии 1.

В этом случае последняя версия не сможет получить доступ к ContentProvider, созданному в версии 1.

Ответ 3

В качестве метода regToWx нужно создать что-то, что является контекстом, но я думаю, что контекст не может использоваться (в некотором роде) внутри метода onCreate. Поэтому я просто помещаю его в поток, а затем проблема решена.