【发布时间】:2017-11-12 06:10:54
【问题描述】:
我将 Android Studio 升级到 2.3.3
然后我安装了 Android SDK Build-Tools 26
和 Android 8.0 (O)
并将 compileSdkVersion 和 targetSdkVersion 设置为 26
并在“26.0.0”上构建工具版本
然后我将所有库版本从 25.3.1 更改为 26.0.0-alpha1
现在我有以下运行时异常:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mysite.myapp/com.mysite.myapp.MainActivity}: android.view.InflateException: Binary XML file line #35: Error inflating class fragment 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2480) 在 android.app.ActivityThread.access$800(ActivityThread.java:151) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1377) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:155) 在 android.app.ActivityThread.main(ActivityThread.java:5725) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1030) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:825) 原因:android.view.InflateException: Binary XML file line #35: Error inflating class fragment 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:504) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:414) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:365) 在 android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:289) 在 android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 在 com.mysite.myapp.MainActivity.onCreate(MainActivity.java:65) 在 android.app.Activity.performCreate(Activity.java:6018) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1130) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2370) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2480) 在 android.app.ActivityThread.access$800(ActivityThread.java:151) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1377) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:155) 在 android.app.ActivityThread.main(ActivityThread.java:5725) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1030) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:825) 原因:java.lang.IllegalArgumentException:将 FragmentDrawer{28990c1 #0 id=0x7f0f0095} 设置为 FragmentDrawer{28990c1 #0 id=0x7f0f0095} 的目标将创建一个目标循环 在 android.support.v4.app.Fragment.setTargetFragment(Fragment.java:636) 在 com.mysite.myapp.Fragments.FragmentDrawer.onCreate(FragmentDrawer.java:83) 在 android.support.v4.app.Fragment.performCreate(Fragment.java:2226) 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1290) 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1502) 在 android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1737) 在 android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:3512) 在 android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120) 在 android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:330) 在 android.support.v4.app.BaseFragmentActivityApi14.onCreateView(BaseFragmentActivityApi14.java:39) 在 android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:75) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:733) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:504) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:414) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:365) 在 android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:289) 在 android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 在 com.mysite.myapp.MainActivity.onCreate(MainActivity.java:65) 在 android.app.Activity.performCreate(Activity.java:6018) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1130) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2370) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2480) 在 android.app.ActivityThread.access$800(ActivityThread.java:151) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1377) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:155) 在 android.app.ActivityThread.main(ActivityThread.java:5725) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1030) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:825)
(MainActivity.java:65) 和 (FragmentDrawer.java:83) 显示为链接。
MainActivity.java:65 内容:
setContentView(R.layout.activity_main);
FragmentDrawer.java:83 内容:
setTargetFragment(FragmentDrawer.this, 100);
在 MainActivity 之前有一个 SplashActivity,它运行没有任何问题!
我刚刚降级了 SDK Build-Tools、compileSdkVersion、targetSdkVersion、buildToolsVersion 和库版本以再次运行和测试。使用预览版没有问题。
谁能帮帮我?如何使用新的 SDK 版本运行我的应用程序?
【问题讨论】:
标签: java android sdk build-tools android-version