2016-08-24 77 views
0

嗨你能帮助我如何解决这个问题,我不知道为什么的问题是动作条,我尝试从Eclipse导入这个项目,所以很难解决这么多的所有项目的麻烦,我尝试删除库v4的支持,但它不能正常工作错误充气类com.markupartist.android.widget.ActionBar了java.lang.RuntimeException:无法启动活动ComponentInfo

问题android.view.InflateException

短代码:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.depan); 

    SharedPreferences settings = getSharedPreferences(
      LoginActivity.PREFS_NAME, 0); 
    String userName = settings.getString("user_name", ""); 
    TextView vw = (TextView) findViewById(R.id.tvName); 
    vw.setText(userName); 
    TextView tvcopyright = (TextView) findViewById(R.id.depan_copyright); 
    tvcopyright.setMovementMethod(LinkMovementMethod.getInstance()); 
    targetUrl = Config.getEndPointUrl(); 
    ctx = this.getApplicationContext(); 

    final ActionBar actionBar = (ActionBar) findViewById(R.id.actionbar); 
    // actionBar.setHomeAction(new IntentAction(this, createIntent(this), 
    // R.drawable.ic_title_home_demo)); 
    actionBar.setTitle(R.string.app_name); 

    LinearLayout lyUpdate = (LinearLayout) findViewById(R.id.mainLayoutUpdate); 
    if (!AppInfo.needupdate) { 
     lyUpdate.setVisibility(View.GONE); 
    } else { 
     Button btnUpdate = (Button) findViewById(R.id.btnUpdateApp); 
     btnUpdate.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       try { 
        String url = targetUrl + "/getapp.json?userid=" 
          + UserInfo.username; 
        // url = 
        // "http://10.0.2.2/nestleconfect/data/user/NestleConfectMobile.apk"; 
        // String type = 
        // "application/vnd.android.package-archive"; 

        Log.i("ncdebug", "update: " + url); 

        Update(url); 
       } catch (Exception e) { 
        e.printStackTrace(); 
        Toast.makeText(ctx, e.getMessage(), Toast.LENGTH_SHORT) 
          .show(); 
       } 
      } 

      public void Update(String apkurl) { 
       try { 
        URL url = new URL(apkurl); 
        HttpURLConnection c = (HttpURLConnection) url 
          .openConnection(); 
        c.setRequestMethod("GET"); 
        c.setDoOutput(true); 
        c.connect(); 

        String PATH = Environment.getExternalStorageDirectory() 
          + "/download/"; 
        File file = new File(PATH); 
        file.mkdirs(); 

        File outputFile = new File(file, "app.apk"); 
        FileOutputStream fos = new FileOutputStream(outputFile); 

        InputStream is = c.getInputStream(); 

        byte[] buffer = new byte[1024]; 
        int len1 = 0; 
        while ((len1 = is.read(buffer)) != -1) { 
         fos.write(buffer, 0, len1); 
        } 
        fos.close(); 
        is.close(); 

        Intent promptInstall = new Intent(Intent.ACTION_VIEW); 
        promptInstall.setDataAndType(Uri.fromFile(new File(
          Environment.getExternalStorageDirectory() 
            + "/download/app.apk")), 
          "application/vnd.android.package-archive"); 
        startActivity(promptInstall); 
       } catch (IOException e) { 
        Toast.makeText(getApplicationContext(), 
          "Update error! " + e.getMessage(), 
          Toast.LENGTH_LONG).show(); 
       } 
      } 
     }); 
    } 

    // db update 
    LinearLayout lyDbUpdate = (LinearLayout) findViewById(R.id.mainLayoutDbUpdate); 
    if (!AppInfo.dbNeedUpdate) { 
     lyDbUpdate.setVisibility(View.GONE); 
    } else { 
     Button btnDbUpdate = (Button) findViewById(R.id.btnDbUpdateApp); 
     btnDbUpdate.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       Intent intent = new Intent(ctx, DbUpdateActivity.class); 
       startActivity(intent); 
       finish(); 
      } 
     }); 
    } 

    Intent intent = new Intent(this, PeriodicTaskService.class); 
    View view = findViewById(R.id.message_btn); 
    AppInfo.contextmain = ctx; 
    AppInfo.messagebtn = view; 
    startService(intent); 

    String currentDateString = new SimpleDateFormat("yyyy-M-d") 
      .format(new Date()); 
    AppInfo.date = currentDateString; 

    Log.i("ncdebug", "userid(main): " + UserInfo.username + ",name=" 
      + UserInfo.name); 
} 

这是我的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#ffffff" 
    android:orientation="vertical" > 

    <com.markupartist.android.widget.ActionBar 
     android:id="@+id/actionbar" 
     style="@style/ActionBar" /> 

    <LinearLayout 
     android:id="@+id/mainLayoutUpdate" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="#efefef" 
     android:orientation="vertical" 
     android:paddingBottom="3dip" 
     android:paddingLeft="30dip" 
     android:paddingRight="30dip" 
     android:paddingTop="3dip" > 

     <Button 
      android:id="@+id/btnUpdateApp" 
      style="@style/ButtonText" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/button_blue" 
      android:clickable="true" 
      android:paddingBottom="15dp" 
      android:paddingTop="15dp" 
      android:text="Update Ke Versi Terbaru" 
      android:textSize="14sp" 
      android:textStyle="bold" /> 
    </LinearLayout> 

这是日志:

stack=java.lang.RuntimeException: Unable to start activity ComponentInfo{com.inarts.mobile.merch.md/com.inarts.mobile.merch.md.MainActivity}: android.view.InflateException: Binary XML file line #8: Binary XML file line #8: Error inflating class com.markupartist.android.widget.ActionBar 
                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                    at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                    at android.os.Handler.dispatchMessage(Handler.java:102) 
                    at android.os.Looper.loop(Looper.java:148) 
                    at android.app.ActivityThread.main(ActivityThread.java:5417) 
                    at java.lang.reflect.Method.invoke(Native Method) 
                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                    Caused by: android.view.InflateException: Binary XML file line #8: Binary XML file line #8: Error inflating class com.markupartist.android.widget.ActionBar 
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:539) 
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
                    at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:393) 
                    at android.app.Activity.setContentView(Activity.java:2166) 
                    at com.inarts.mobile.merch.md.MainActivity.onCreate(MainActivity.java:53) 
                    at android.app.Activity.performCreate(Activity.java:6237) 
                    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
                    at android.app.ActivityThread.-wrap11(ActivityThread.java)  
                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
                    at android.os.Handler.dispatchMessage(Handler.java:102)  
                    at android.os.Looper.loop(Looper.java:148)  
                    at android.app.ActivityThread.main(ActivityThread.java:5417)  
                    at java.lang.reflect.Method.invoke(Native Method)  
                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
                    Caused by: android.view.InflateException: Binary XML file line #8: Error inflating class com.markupartist.android.widget.ActionBar 
                    at android.view.LayoutInflater.createView(LayoutInflater.java:645) 
                    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764) 
                    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
                    at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
                    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  
                    at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:393)  
                    at android.app.Activity.setContentView(Activity.java:2166)  
                    at com.inarts.mobile.merch.md.MainActivity.onCreate(MainActivity.java:53)  
                    at android.app.Activity.performCreate(Activity.java:6237)  
                    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)  
                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)  
                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
                    at android.app.ActivityThread.-wrap11(ActivityThread.java)  
                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
                    at android.os.Handler.dispatchMessage(Handler.java:102)  
                    at android.os.Looper.loop(Looper.java:148)  
                    at android.app.ActivityThread.main(ActivityThread.java:5417)  
                    at java.lang.reflect.Method.invoke(Native Method)  
                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
                    Caused by: java.lang.reflect.InvocationTargetException 
                    at java.lang.reflect.Constructor.newInstance(Native Method) 
                    at android.view.LayoutInflater.createView(LayoutInflater.java:619) 
                    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764)  
                    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)  
                    at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)  
                    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)  
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:515)  
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  
                    at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:393)  
                    at android.app.Activity.setContentView(Activity.java:2166)  
                    at com.inarts.mobile.merch.md.MainActivity.onCreate(MainActivity.java:53)  
                    at android.app.Activity.performCreate(Activity.java:6237)  
                    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)  
                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)  
                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
                    at android.app.ActivityThread.-wrap11(ActivityThread.java)  
                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
                    at android.os.Handler.dispatchMessage(Handler.java:102)  
                    at android.os.Looper.loop(Looper.java:148)  
                    at android.app.ActivityThread.main(ActivityThread.java:5417)  
                    at java.lang.reflect.Method.invoke(Native Method)  
                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
                    Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/markupartist/android/widget/actionbar/R$layout; 
                    at com.markupartist.android.widget.ActionBar.<init>(ActionBar.java:57) 
                    at java.lang.reflect.Constructor.newInstance(Native Method)  
                    at android.view.LayoutInflater.createView(LayoutInflater.java:619)  
                    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764)  
                    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)  
                    at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)  
                    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)  
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:515)  
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  
                    at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:393)  
                    at android.app.Activity.setContentView(Activity.java:2166)  
                    at com.inarts.mobile.merch.md.MainActivity.onCreate(MainActivity.java:53)  
                    at android.app.Activity.performCreate(Activity.java:6237)  
                    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)  
                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)  
                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
                    at android.app.ActivityThread.-wrap11(ActivityThread.java)  
                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
                    at android.os.Handler.dispatchMessage(Handler.java:102)  
                    at android.os.Looper.loop(Looper.java:148)  
                    at android.app.ActivityThread.main(ActivityThread.java:5417)  
                    at java.lang.reflect.Method.invoke(Native Method)  
                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
                    Caused by: java.lang.ClassNotFoundException: Didn't find class "com.markupartist.android.widget.actionbar.R$layout" on path: DexPathList[[dex file "/data/data/com.inarts.mobile.merch.md/files/instant-run/dex/slice-support-annotations-24.2.0_172ab3f548c6de548a79bebb7324b06edd4ccef2-classes.dex", dex file "/data/data/com.inarts.mobile.merch.md/files/instant-run/dex/slice-slice_9-classes.dex", dex file "/data/data/com.inarts.mobile.merch.md/files/instant-run/dex/slice-slice_8-classes.dex", dex file "/data/data/com.inarts.mobile.merch.md/files/instant-run/dex/slice-slice_7-classes.dex", dex file "/data/data/com.inarts.mobile.merch.md/files/instant-run/dex/slice-slice_6-classes.dex", dex file "/data/data/com.inarts.mobile.merch.md/files/instant-run/dex/slice-slice_5-classes.dex", dex file "/data/data/com.inarts.mobile.merch.md/files/instant-run/dex/slice-slice_4-classes.dex", dex file "/data/data/com.inarts.mobile.merch.md/files/instant-run/dex/slice-slice_3-classes.dex", dex file "/data/data/com.inarts.mobile.merch.md/files/instant-run/dex/slice-slice_2-classes.dex", dex file "/data/data/com.inarts.mobile.merch.md/files/instant-run/dex/slice-slice_1-classes.dex", dex file "/data/data/com.inarts.mobile.merch.md/files/instant-run/dex/slice-slice_0-classes.dex", dex file "/data/data/com.inarts.mobile.merch.md/files/instant-run/dex/slice-maps_b9 
08-25 06:14:39.749 9239-9239/com.inarts.mobile.merch.md D/Error: ERR: TOTAL BYTES WRITTEN: 61712 
08-25 06:19:39.756 9239-9239/com.inarts.mobile.merch.md I/Process: Sending signal. PID: 9239 SIG: 9 
+0

,请复制粘贴错误日志,以及 - 这可能揭示可能是什么问题,更多的光。 – ishmaelMakitla

+0

另外检查你的主题,可能你正在使用需要支持库v7需要支持库v4的AppCompatTheme。我认为今天不可能在没有支持库v4和v7的情况下构建一个项目。 – jonathanrz

+0

如果您使用的是eclipse,请将导入支持库作为“sdk/extras/android/support/v7/appcompat”中的项目导入。和工作室比导入依赖项 –

回答

0

如何和/或你在哪里得到 “com.markupartist.android.widget.ActionBar” 的定义是什么?

这看起来并不像一个标准的小部件,自该项目建立了您和崩溃上来看,我的猜测是,它没有被包括在内,与您的项目部署。

尽量简单切换回标准动作条,验证它的工作原理像,然后跳回到您使用自定义动作条插件。

添加亚行数也会有所帮助。

+0

“com.markupartist.android.widget.ActionBar”尝试一下XML在我的岗位,我用它在那里,如果我与STANDAR动作条程序兼容性改变导致在某些活动上使用其他方法的问题 –

+0

我想你错过了我的速记。 XML中的'com.markupartist.android.widget.Actionbar'是对实现该视图的实际Java类的引用。如果您在编译时可以使用它,则在构建过程中不会出现错误。如果它没有被APK部署,那么当它实际使用它时,你会得到一个运行时膨胀错误。 –

相关问题