環境
android studio 2.3.2
ndk 14.1.3816874
我使用as open tests底下的cpp-empty
make project build出來的apk 大小只有4912kb
執行時會失敗,提示
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.cocos2dx.cpp_empty_test/org.cocos2dx.cpp_empty_test.AppActivity}: java.lang.ClassNotFoundException: Didn’t find class “org.cocos2dx.cpp_empty_test.AppActivity” on path: DexPathList[[zip file “/data/app/org.cocos2dx.cpp_empty_test-1/base.apk”],nativeLibraryDirectories=[/data/app/org.cocos2dx.cpp_empty_test-1/lib/arm, /vendor/lib, /system/lib]]
但是用as build apk 出來的apk大小就有5404kb
這時候可以正常運行
我不太清楚為什麼會有這樣的差異
另外就是 創建新project
cocos new MyGame -p com.your_company.mygame -l cpp -d NEW_PROJECTS_DIR
直接build apk 大小只有1mb 且無法安裝
新建的androi studio project,app底下build.gradle跟cpp-test的 明顯不同
少了externalNativeBuild,我手動複製cpptest的過去
as 還是會提示unknow property PROP_TARGET_SDK_VERSION
PROP_APP_ABI
不知道是不是在創建新專案過程中哪邊搞錯了?
'apply plugin: ‘com.android.application’
android {
compileSdkVersion 23
buildToolsVersion ‘25.0.3’
defaultConfig {
applicationId "cpptest"
minSdkVersion 10
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
sourceSets.main {
java.srcDir "src"
res.srcDir "res"
jniLibs.srcDir "libs"
manifest.srcFile "AndroidManifest.xml"
assets.srcDir "assets"
}
signingConfigs {
release {
if (project.hasProperty("RELEASE_STORE_FILE")) {
storeFile file(RELEASE_STORE_FILE)
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
if (project.hasProperty("RELEASE_STORE_FILE")) {
signingConfig signingConfigs.release
}
}
}
}
dependencies {
compile fileTree(dir: ‘libs’, include: [’*.jar’])
compile project(’:libcocos2dx’)
}
task cleanAssets(type: Delete) {
delete ‘assets’
}
task copyAssets(type: Copy) {
from ‘…/…/Resources’
into ‘assets’
}
clean.dependsOn cleanAssets
preBuild.dependsOn copyAssets’