IntelliJ 12 + ActionBarSherlock settings: Could no

2019-01-17 01:37发布

问题:

There are numerous Q&A about IntelliJ 12 + ABS(ActionBarSherlock) settings.

similar case to this question but shows different errors.

Overall compilation and runnings are OK but only Activity using Tab Navigation(SherlockActivity implements ActionBar.TabListener) gives following error and crash. Note that I can use general SherlockActivity shows well.

"Could not find class 'android.support.v4.app.FragmentActivity', referenced from method com.actionbarsherlock.internal.app.ActionBarWrapper$TabWrapper.onTabReselected" on every overriden methods (onTabUnselected, onTabSelected, onTabReselected).

It seems like android-support-v4 is not sucessfully referenced but hard to find with check/uncheck trial-and-errors.

My IntelliJ project settings are as below.

1. Library is a name of ABS library folder.

2. My project settings.

I set both android-support-v4 to provided. What can I do more?

Some answers said to remove android-support-v4 to my own project but it shows reference errors on import android.support.v4.app.FragmentTransaction because implements ActionBar.TabListener requires it.

回答1:

This configuration is not correct, the scope of the android-support-v4 library must be set to Compile as it's not present on Android and must be included in your application.

Second copy of android-support-v4 must be removed from the application dependencies, it will be available to your application via a library module that has Export option enabled for android-support-v4.



回答2:

I also had this problem in Android Studio (Version 1.1.0) when I wanted to check/test the "EffectiveNavigation"-App from the google examples (Link: http://developer.android.com/training/implementing-navigation/lateral.html)

What I had to do was to add this code snippet at the path ".\EffectivNavigation\app\builde.gradle":

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-v4:20.0.0'
}

So the whole build.gradle looks like this:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.example.android.effectivenavigation"
        minSdkVersion 14
        targetSdkVersion 14
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-v4:20.0.0'
}

You can also use

compile 'com.android.support:support-v4:20.+'

instead of

compile 'com.android.support:support-v4:20.0.0'

Maybe this answer is more helpfull for you than the other answers.



回答3:

I added adt/sdk/extras/android/support/v4/android-support-v4.jar (adt should point to the android sdk) to the classpath of the Android SDK in Idea.



回答4:

Just for the record - this solved the problem for me: (via https://stackoverflow.com/a/35248120/2409397 )

Build > Rebuild Project.