Android Studio 0.8.5 なこと

スポンサーリンク

Eclipse 4.4, Android SDK 23.0.2, Android NDK r10 で作成したアプリを Android Studio 0.8.5 にインポートしようとしてみました.

Migrating from Eclipse
https://developer.android.com/sdk/installing/migrate.html

Android Studio でインポートしてプロジェクトを開くと,まず,下記のエラー.

AndroidManifest.xml doesn't exists or has incorrect root tag

下記に書かれている Sync project with Gradle files を実行するとよさそうです.

Android Studio: Android Manifest doesn’t exists or has incorrect root tag
http://stackoverflow.com/questions/17424135/android-studio-android-manifest-doesnt-exists-or-has-incorrect-root-tag

続いて,アプリケーションをビルドしようとすると,

:dexDebug
:processDebugJavaRes
:validateDebugSigning
:packageDebug
Error: duplicate files during packaging of APK /home/user/AndroidStudioProjects/mokyu/build/outputs/apk/mokyu-debug-unaligned.apk
	Path in archive: META-INF/AAA.txt
	Origin 1: /home/user/AndroidStudioProjects/mokyu/libs/aaa.jar
	Origin 2: /home/user/AndroidStudioProjects/mokyu/libs/bbb.jar
You can ignore those files in your build.gradle:
	android {
	  packagingOptions {
	    exclude 'META-INF/AAA.txt'
	  }
	}

 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':packageDebug'.
> Duplicate files copied in APK META-INF/AAA.txt
  	File 1: /home/user/AndroidStudioProjects/mokyu/libs/aaa.jar
  	File 2: /home/user/AndroidStudioProjects/mokyu/libs/bbb.jar

AAA.txt について対処して再度ビルドすると今度は BBB.txt で同じエラーが発生しましたが,ワークアラウンドとしては,gradle ファイルに下記の追記しておくことにします.

android {
...
  packagingOptions {
    exclude 'META-INF/AAA.txt'
    exclude 'META-INF/BBB.txt'
  }
...
}

ビルドできたのでアプリケーションを実行してみると,

Caused by: java.lang.UnsatisfiedLinkError: Couldn't load mokyu-jni from loader dalvik.system.PathClassLoader[dexPath=/data/app/test.example.mokyu-1.apk,libraryPath=/data/app-lib/test.example.mokyu-1]: findLibrary returned null
            at java.lang.Runtime.loadLibrary(Runtime.java:365)

NDK JNI で作成したのが無いと出ます.

もう面倒なので,まだしばらく NDK を含んでいる既存のプロジェクトは Eclipse + ADT でやることにしました.