16

im cercando di utilizzare UI Automator nel mio progetto con minSdkVersion 9 e, naturalmente, non funziona perché bersaglio API 18.UI Automator in progetto con minSdkVersion 9

Così Android Studio mi butta questo errore:

Error:(5, 5) uses-sdk:minSdkVersion 9 cannot be smaller than version 18 declared in library ~/app/build/intermediates/exploded-aar/com.android.support.test.uiautomator/uiautomator-v18/2.1.1/AndroidManifest.xml 

Suggestion: use tools:overrideLibrary="android.support.test.uiautomator.v18" to force usage 

Error:Execution failed for task ':app:processDebugAndroidTestManifest'. 
> java.lang.RuntimeException: Manifest merger failed : uses-sdk:minSdkVersion 9 cannot be smaller than version 18 declared in library ~/app/build/intermediates/exploded-aar/com.android.support.test.uiautomator/uiautomator-v18/2.1.1/AndroidManifest.xml 

    Suggestion: use tools:overrideLibrary="android.support.test.uiautomator.v18" to force usage 

ho aggiunto al mio manifesto il tag <uses-sdk tools:overrideLibrary="android.support.test.uiautomator.v18" /> ma l'errore continuano a mostrare, sto facendo qualcosa di sbagliato?

+0

potete inserire il file build.gradle? –

risposta

0

È necessario costruire la vostra applicazione con minSdkVersion 18, ma si può ancora passare a Espresso.

+1

C'è un modo per specificare 'minSdkVersion' di 18 * solo * per il gusto AndroidTest dell'app? –

+0

Nulla di ciò che so. Penso che avresti bisogno di modificare i compiti generati da gradle e sono molto utili per farlo funzionare. –

+1

Secondo sapore spec http://tools.android.com/tech-docs/new-build-system/build-system-concepts è possibile creare il sapore con una corretta minSdkVersion e costruire i test con quel sapore –

37

Se si utilizza Gradle, è possibile aggiungere un altro Manifest al tipo di build androidTest che verrà unito e non influisce sulle normali build di rilascio/debug.

Aggiungi app/src/androidTest/AndroidManifest.xml al progetto:

<manifest 
    package="${applicationId}.test" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools"> 

    <uses-sdk tools:overrideLibrary="android.support.test.uiautomator.v18"/> 
</manifest> 

Ciò unire il manifesto con la persona normale, che non richiede di cambiare la vostra minSdk. Si prega di notare che questo sarà probabilmente in crash se si tenta l'esecuzione di test dell'interfaccia utente strumentazione SDK < 18.

Con l'aggiunta di ulteriori autorizzazioni alla si può anche solo aggiungere le autorizzazioni per i test come storage esterno se non regolarmente bisogno loro nella tua app. Saranno anche disponibili per le build di debug.

+0

Sì, funziona, grazie! – validcat

+0

Esistono avvertimenti che utilizzano questo approccio? Grazie! –

+0

@NeonWarge nessuno a cui potrei pensare diversamente dalle cose menzionate –