2015-07-27 4 views
0

Я уже встречал вопросы, но я не нашел ответа.Ошибка раздувания класса в виде

LogCat выдает эту ошибку:

I/Timeline(7748): Timeline: Activity_launch_request id:com.miracle.livapp time:45951871 
I/ActivityManager( 768): START u0 {flg=0x10000000 cmp=com.miracle.livapp/com.odizzain.cordova.plugins.livestream.CameraStreamingActivity} from uid 10252 on display 0 
E/AndroidRuntime(7748): Process: com.miracle.livapp, PID: 7748 
E/AndroidRuntime(7748): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.miracle.livapp/com.odizzain.cordova.plugins.livestream.CameraStreamingActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class ru.denivip.nine00secondssdk.hlsstreaming.Nine00SecondsCameraView 
D/ActivityManager( 768): New dropbox entry: com.miracle.livapp, data_app_crash, 877fda44-aca7-4a69-8c23-c0da45fa7bd4 
W/ActivityManager( 768): Force finishing activity com.miracle.livapp/com.odizzain.cordova.plugins.livestream.CameraStreamingActivity 
W/ActivityManager( 768): Force finishing activity com.miracle.livapp/.MainActivity 
W/ActivityManager( 768): Activity pause timeout for ActivityRecord{3e7cfd61 u0 com.miracle.livapp/com.odizzain.cordova.plugins.livestream.CameraStreamingActivity t82 f} 
W/ActivityManager( 768): Activity destroy timeout for ActivityRecord{338f1497 u0 com.miracle.livapp/.MainActivity t82 f} 
W/ActivityManager( 768): Activity destroy timeout for ActivityRecord{3e7cfd61 u0 com.miracle.livapp/com.odizzain.cordova.plugins.livestream.CameraStreamingActivity t82 f} 

Класс участие имеет два конструктора избежать второй проблемы аргумент, что я читал в других местах:

public Nine00SecondsCameraView(Context context){ 
    super(context, null); 
} 

public Nine00SecondsCameraView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    .... 
} 

Это XML-файл:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

<ru.denivip.nine00secondssdk.hlsstreaming.Nine00SecondsCameraView 
    android:id="@+id/streamingView" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 

<ImageButton 
    android:id="@+id/toggleRecording_button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_centerVertical="true" 
    android:layout_marginRight="16dp" 
    android:background="@drawable/circle_button_background_selector" 
    android:src="@drawable/reccord_button" 
    android:clickable="true" 
    android:onClick="clickToggleRecording" /> 
</RelativeLayout> 

И это CameraStreamingActivity.java

package com.odizzain.cordova.plugins.livestream; 


import ru.denivip.nine00secondssdk.hlsstreaming.Nine00SecondsCameraView; 
import android.app.Activity; 
import android.content.res.Resources; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ImageButton; 

public class CameraStreamingActivity extends Activity { 


    private String appPackageName = null; 
    private Resources appResources = null; 

    private Nine00SecondsCameraView streamingView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     appPackageName = getApplication().getPackageName(); 
     appResources = getApplication().getResources(); 
     // appResources.getIdentifier("activity_camerabroadcast", "layout", appPackageName) 

     setContentView(appResources.getIdentifier("camera_streaming_activity", "layout", appPackageName)); 
     streamingView = (Nine00SecondsCameraView) findViewById(appResources.getIdentifier("streamingView", "id", appPackageName)); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     streamingView.onResume(); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     streamingView.onPause(); 
    } 

    /** 
    * onClick handler for "record" button. 
    */ 
    public void clickToggleRecording(View unused) { 
     if (streamingView.isRecording()) 
      streamingView.stopRecording(); 
     else 
      streamingView.startRecording(); 

     updateControls(); 
    } 


    /** 
    * Updates the on-screen controls to reflect the current state of the app. 
    */ 
    private void updateControls() { 
     ImageButton toggleRelease = (ImageButton) findViewById(appResources.getIdentifier("toggleRecording_button", "id", appPackageName)); 

     int id = streamingView.isRecording() ? 
       appResources.getIdentifier("stop_reccord_button", "drawable", appPackageName) : 
       appResources.getIdentifier("reccord_button", "drawable", appPackageName); 

     toggleRelease.setImageResource(id); 
    } 

} 

Кстати, я использую этот SDK: http://livestreamsdk.com/

+0

Можете ли вы разместить весь логарифм? – Tukajo

+0

@Tukajo done, я добавил logcat с начала действия – jsertx

+0

Ваш лог-код показывает NullPointerError в строке 33 «CameraStreamingActivity», можете ли вы показать нам это? – Tukajo

ответ

0

Я решил добавления конструкторов для этого три и четыре аргумента:

SurfaceView(Context context, AttributeSet attrs, int defStyleAttr) 
SurfaceView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) 

Как android documentation говорит.