Там некоторая ошибка при компоновке загрузки 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.
Ответы
Ответ 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. Поэтому я просто помещаю его в поток, а затем проблема решена.