2016-11-02 12 views
1

Fragment内の次の行は、根本原因を見つけることができない例外をスローしています。フラグメント内のonCreateView内のinflater.inflateが例外をスローしています

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.fragment_player_pane, container, false); 
    RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) rootView.getLayoutParams(); 

    // set width height 
    params.height = (getArguments().getInt(HEIGHT)); 
    params.width = (getArguments().getInt(WIDTH)); 

    fragmentHeight = (getArguments().getInt(HEIGHT)); 
    fragmentWidth = (getArguments().getInt(WIDTH)); 

    // substitute parameters for left,top, right, bottom, (All 4 not necessary) 
    params.setMargins((getArguments().getInt(LEFT_MARGIN)), 
      (getArguments().getInt(TOP_MARGIN)), 
      (getArguments().getInt(RIGHT_MARGIN)), 
      (getArguments().getInt(BOTTOM_MARGIN))); 

    youTubePlayerNecessary = getArguments().getBoolean(REQUIRE_YOUTUBE); 
    rotate = getArguments().getBoolean(REQUIRE_ROTATION); 
    muteAudio = getArguments().getBoolean(MUTE_AUDIO); 

    rootView.setLayoutParams(params); 

    return rootView; 
} 

例外:

11-02 11:36:04.966 3440-3452/com.blynq.app.multipaneplayer E/StrictMode: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks. 
    java.lang.Throwable: Explicit termination method 'close' not called 
     at dalvik.system.CloseGuard.open(CloseGuard.java:184) 
     at java.io.RandomAccessFile.<init>(RandomAccessFile.java:127) 
     at com.android.webview.chromium.WebViewChromiumFactoryProvider.startChromiumLocked(WebViewChromiumFactoryProvider.java:16107) 
     at com.android.webview.chromium.WebViewChromiumFactoryProvider.ensureChromiumStartedLocked(WebViewChromiumFactoryProvider.java:333) 
     at com.android.webview.chromium.WebViewChromiumFactoryProvider.startYourEngines(WebViewChromiumFactoryProvider.java:427) 
     at com.android.webview.chromium.WebViewChromium.init(WebViewChromium.java:162) 
     at android.webkit.WebView.<init>(WebView.java:554) 
     at android.webkit.WebView.<init>(WebView.java:489) 
     at android.webkit.WebView.<init>(WebView.java:472) 
     at android.webkit.WebView.<init>(WebView.java:459) 
     at java.lang.reflect.Constructor.newInstance(Native Method) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
     at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) 
     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
     at com.blynq.app.fragments.PlayerPane.onCreateView(PlayerPane.java:181) 
     at android.app.Fragment.performCreateView(Fragment.java:2053) 
     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:894) 
     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) 
     at android.app.BackStackRecord.run(BackStackRecord.java:834) 
     at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1454) 
     at android.app.FragmentManagerImpl$1.run(FragmentManager.java:447) 
     at android.os.Handler.handleCallback(Handler.java:739) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5343) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700) 

私は現在、すべての可能なメモリリークを確認するために、デバッグモードでアプリケーションを実行しています。

if (BuildConfig.DEBUG) { 
     StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() 
       .detectAll() 
       .penaltyLog() 
       .penaltyDeath() 
       .build()); 
    } 

マニフェストファイルのすべてのタグも正しく閉じられています。どのリソースが処理されずに開かれたのかわかりません。これをどうやって解決するのですか?

P.S.質問をする前にthreadを参照しました。これは、私にとって新しい必要な洞察を提供しない非常に一般的な質問です。この質問は

+1

マニフェストファイルを確認し、すべてのタグが正しく閉じられているかどうかを確認します.OKHttpを使用している場合は、古いバージョンの既知のバグです。新しいバージョンに更新してください –

+0

はい、マニフェストファイル内のすべてのタグが正しく閉じられています。私はプロジェクト内でokHttpを使用していません.HTML通信で 'org.apache.httpcomponents:httpclient-android:4.3.5.1'を使用しています – jay

+0

complete fragment_player_paneとoncreateviewメソッド –

答えて

0
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll().penaltyLog() 
           .penaltyDeath().build()); 

詳細については Error Solve Url

+1

これは問題を修正するものではなく、違反を隠すだけです。 – rds

2

誰かがために問題を提起し、このURLに従ってください..私は、リークの原因となっているリソースを見つけるために助けを求めている、ここで、上記の内容に非常に具体的ですこれはここにあります:https://code.google.com/p/android/issues/detail?id=226751

私は同じ問題を抱えていました。それはAPI <のバグですね。25あなたのプログラムをAPI 25のエミュレータで試してみましょう。それがうまくいくならば、それは同じ問題である可能性が最も高く、あなたが問題を解決するまで運が尽きるはずです。

関連する問題