2016-10-07 5 views
0

Nach dem Upgrade auf Android Gradle Plugin 2.2.0 (und Android Studio 2.2) habe ich Probleme beim Lesen von einer Zip-Datei, die bei app/src/main/assets/magic_info.zip befindet Es funktioniert fein mit Plugin-Versionen 2.1.3 und vor aber jetzt wirft es die folgende AusnahmeAndroid Gradle Plugin 2.2.0 verursacht FileNotFoundException beim Lesen von Assets

java.io.FileNotFoundException: magic_info.zip 
at android.content.res.AssetManager.openAsset(Native Method) 
at android.content.res.AssetManager.open(AssetManager.java:334) 
at android.content.res.AssetManager.open(AssetManager.java:308) 

es aus irgendeinem Grund nicht auf die Datei von Assets finden können, die sonst besteht.

Hier ist mein Code, der in der Vergangenheit funktioniert hat.

public static ZipInputStream getZipInputStream(Context context) 
{ 
    try 
    { 
     return new ZipInputStream(context.getAssets().open("magic_info.zip")); 
    } 
    catch (IOException e) 
    { 
     e.printStackTrace(); 
    } 
    return null; 
} 

Irgendeine Idee, was ist daran falsch? Fehle ich etwas?

Antwort

0

OK Ich habe es herausgefunden und es ist irgendwie seltsam.

Ab Android Studio 2.2 und Gradle Plugin 2.2 benötigen Sie das Android SDK, das Ihrem Testgerät entspricht, sowie das Ziel-SDK, das auf Ihrem Computer installiert ist, wenn Sie möchten, dass alles ordnungsgemäß funktioniert.

Jetzt kann ich API 24 zielen, aber ich teste meine App auf ein Gerät mit Lollipop (API 21). Sobald ich SDK 21 installiert habe, wird die Datei normal gelesen.

0

diese ersetzen:

return new ZipInputStream(context.getAssets().open("magic_info.zip")); 

mit diesem:

return new ZipInputStream(getResources().getAssets().open("magic_info.zip")); 
Verwandte Themen