2016-10-07 9 views
0

私が使用している最新のAndroidAnnotations 4.1.0link)とtargetVersion 24をサポートするためにappcompat24.2.1にを変更してみてください。しかし、私のアプリはappcompat-v7バージョン23+を使用するとクラッシュしますが、appcompat-v7:22.2.0で正常に動作します。どんな提案も訴える。以下は私のエラーログです:クラッシュアプ​​リのサポートとAndroidAnnotationsを使用した:APPCOMPAT-V7バージョン23 +

FATAL EXCEPTION: main 
    Process: ABC, PID: 1275 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{MyPackage/MyPackage.activities.MainActivity_}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2237) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2286) 
     at android.app.ActivityThread.access$800(ActivityThread.java:144) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1246) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:212) 
     at android.app.ActivityThread.main(ActivityThread.java:5137) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:718) 
     at dalvik.system.NativeStart.main(Native Method) 
    Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class fragment 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
     at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284) 
     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
     at MyPackage.activities.MainActivity_.setContentView(MainActivity_.java:51) 
     at MyPackage.activities.MainActivity_.onCreate(MainActivity_.java:40) 
     at android.app.Activity.performCreate(Activity.java:5231) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2201) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2286)  
     at android.app.ActivityThread.access$800(ActivityThread.java:144)  
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1246)  
     at android.os.Handler.dispatchMessage(Handler.java:102)  
     at android.os.Looper.loop(Looper.java:212)  
     at android.app.ActivityThread.main(ActivityThread.java:5137)  
     at java.lang.reflect.Method.invokeNative(Native Method)  
     at java.lang.reflect.Method.invoke(Method.java:515)  
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)  
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:718)  
     at dalvik.system.NativeStart.main(Native Method)  
    Caused by: java.lang.IllegalArgumentException: Binary XML file line #7: Must specify unique android:id, android:tag, or have a parent with an id for MyPackage.fragments.MainFragment_ 
     at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2387) 
     at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120) 
     at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:376) 
     at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:33) 
     at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:75) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)  
     at android.view.LayoutInflater.inflate(LayoutInflater.java:492)  
     at android.view.LayoutInflater.inflate(LayoutInflater.java:397)  
     at android.view.LayoutInflater.inflate(LayoutInflater.java:353)  
     at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)  
     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
     at MyPackage.activities.MainActivity_.setContentView(MainActivity_.java:51)  
     at MyPackage.activities.MainActivity_.onCreate(MainActivity_.java:40)  
     at android.app.Activity.performCreate(Activity.java:5231)  
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)  
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2201)  
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2286)  
     at android.app.ActivityThread.access$800(ActivityThread.java:144)  
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1246)  
     at android.os.Handler.dispatchMessage(Handler.java:102)  
     at android.os.Looper.loop(Looper.java:212)  
     at android.app.ActivityThread.main(ActivityThread.java:5137)  
     at java.lang.reflect.Method.invokeNative(Native Method)  
     at java.lang.reflect.Method.invoke(Method.java:515)  
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)  
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:718)  
     at dalvik.system.NativeStart.main(Native Method)  

そして、これは、それがスタックトレースから準備ができているとして、問題はあなたが任意のIDどちらのタグを追加していないということである私のGradle

apply plugin: 'com.android.application' 
apply plugin: 'android-apt' 
... 

def PACKAGE_NAME = "MyPackage" 
def VERSION_CODE = 1 
def VERSION_NAME = "1.0.0" 

def AAVersion = '4.1.0' 

tasks.withType(JavaCompile) { 
    options.encoding = 'UTF-8' 
} 

buildscript { 
    repositories { 
    mavenCentral() 
    ... 
    } 
    dependencies { 
    // replace with the current version of the Android plugin 
    classpath 'com.android.tools.build:gradle:2.2.0' 
    // replace with the current version of the android-apt plugin 
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 
    ... 
    } 
} 

apt { 
    arguments { 
    androidManifestFile variant.outputs[0].processResources.manifestFile 
    resourcePackageName PACKAGE_NAME 
    } 
} 

repositories { 
    mavenCentral() 
    ... 
} 

android { 
    compileSdkVersion 24 
    buildToolsVersion "24.0.2" 

    defaultConfig { 
    applicationId PACKAGE_NAME 
    minSdkVersion 14 
    targetSdkVersion 24 
    versionCode VERSION_CODE 
    versionName VERSION_NAME 

    // Enabling multidex support. 
    multiDexEnabled true 
    } 

    signingConfigs { 
    ... 
    } 

    buildTypes { 
    release { 
     minifyEnabled true 
     proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 
     signingConfig signingConfigs.release 
    } 
    } 

    compileOptions { 
    sourceCompatibility JavaVersion.VERSION_1_8 
    targetCompatibility JavaVersion.VERSION_1_8 
    } 

    packagingOptions { 
    ... 
    } 

    dexOptions { 
    ... 
    } 

    ... 
} 

dependencies { 
    apt "org.androidannotations:androidannotations:$AAVersion" 
    compile "org.androidannotations:androidannotations-api:$AAVersion" 
    ... 
    compile 'com.android.support:appcompat-v7:24.2.1' 
    compile 'com.google.android.gms:play-services-maps:9.6.1' 
    compile 'com.google.android.gms:play-services-location:9.6.1' 
    compile 'com.google.android.gms:play-services-gcm:9.6.1' 
    compile 'com.squareup.retrofit2:retrofit:2.1.0' 
    compile 'com.squareup.retrofit2:converter-gson:2.1.0' 
    compile 'com.squareup.retrofit2:converter-jackson:2.1.0' 
    compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0' 
    compile('com.squareup.okhttp3:okhttp:3.2.0') { 
    exclude module: 'okhttp' 
    } 
    compile 'io.reactivex:rxandroid:1.0.1' 
    compile 'com.squareup.okhttp3:logging-interceptor:3.2.0' 
    compile 'com.github.mrmike:ok2curl:0.2.3' 
    compile 'de.greenrobot:eventbus:2.4.0' 
    compile 'com.android.support:multidex:1.0.1' 
    compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
    transitive = true; 
    } 
} 

repositories { 
    flatDir { 
    dirs 'libs' 
    } 
} 
+1

はあなたのログを1として、あなたの 'build.gradle' –

+0

は、いくつかのエラーは行番号7 –

+0

@IntelliJAmiyaであなたのXMLファイル内に存在であることを示すことを確認してください、私はより詳細な情報を表示することはできません知っています。しかし、この事のほとんどはクラッシュに関連しています。 – NamNH

答えて

0

ですあなたのインスタンスが宣言されているxmlレイアウトのあなたのフラグメント。問題のフラグメントはMyPackage.fragments.MainFragment_です。これはAndroidAnnotationsとは関係なく、標準エラーです。

<fragment android:name="MyPackage.fragments.MainFragment_" 
       android:id="@+id/fragment_id" <!-- Add an ID --> 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" /> 
+0

ありがとう。しかし、なぜそれはアンドロイドappcompat 22.2.0で動作するのですか? – NamNH

+0

すべてが変更されていないので、 'appcompat'のバージョン変更によって' inflate exception'が発生します。単に 'androidannotations' libに関係していると思います。提案はありますか? – NamNH

+0

これはAndroidAnnotationsとは関係ありません。注意深くstacktraceを読んでください: "原因:java.lang.IllegalArgumentException:バイナリXMLファイル行#7:一意のandroid:id、android:タグを指定するか、MyPackage.fragments.MainFragment_"のIDを持つ親を持つ必要があります。私は後でappcompatがこれについて厳しい規則を導入したと思う。 – WonderCsabo

関連する問題