2015-09-25 3 views
12

So, das ist die Logcat Informationen, die ich bekomme.Die App kann immer noch laufen, aber ich möchte den Grund wissen, warum ich diesen Fehler bekomme. Ich verstehe nicht, warum ich das bekomme, also weiß ich nicht, wie ich fragen soll.Es gibt einen Fehler beim Laden von Android-Layout, aber keine effektive auf

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) 

Es tut mir leid für die folgende Haupttätigkeit zu vergessen.

Die Linie 27 ist

public class MainActivity extends AppCompatActivity { 

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

super.onCreate (savedInstanceState); ist die Linie 27.

+0

, wenn Sie die OnCreate Methode veröffentlichen können com.gongxxing.gongxxing0922.MainActivity.onCreate (MainActivity.java:27) der Fehler in der Zeile 27 des MainActivity kann helfen? –

+0

Jetzt aktualisiere ich die MainActivity.Was brauchst du noch? – yzlee

+1

Ich habe das gleiche Problem. Hast du eine Lösung gefunden? – Nikola

Antwort

3

Sorry, diese alte Frage zu beantworten, aber ich löste diese Ausnahme in meinem Projekt.

Ich denke, was zu der Ausnahme führt, verwenden wir den Kontext unserer Aktivität, wenn es erstellt wird.

Mein Code ist so etwas wie:

@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); 
} 

Da die regToWx Methode etwas von this erstellen müssen, die der Kontext ist, aber ich denke, der Kontext nicht (in gewisser Weise) verwendet werden innerhalb onCreate Methode. Also lege ich es einfach in einen Thread und dann ist das Problem gelöst.

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

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

} 

So versuchen, um herauszufinden, was Sie mit Ihren context in onCreate Verfahren getan haben, diesen Code aus dem es ausdrückte oder einfach nur den Code asynchron machen.

1

Ich bekam den gleichen Fehler. Ich habe herausgefunden, dass dies auf das Attribut android zurückzuführen ist: sharedUserId = "com.etwas", das ich in den Manifest-Dateien verwendet habe.

Angenommen, Version 1 Ihrer Anwendung hat android: sharedUserId im Manifest und initialisiert einen ContentProvider.

Nun nehmen wir in Version 2, können Sie die Android entfernen: sharedUserId aus dem Manifest und versuchen, die Contentprovider in Version 1.

, wird die aktuelle Version In diesem Fall erstellt für den Zugriff nicht die Contentprovider zugreifen können in der Version 1 erstellt.

0

Da die RegToWx-Methode muss etwas von diesem erstellen, der den Kontext ist, aber ich denke, der Kontext kann nicht (in gewisser Weise) in OnCreate-Methode verwendet werden. Also lege ich es einfach in einen Thread und dann ist das Problem gelöst.

Verwandte Themen