Android Studio.我在应用程序运行期间遇到了这种错误.
Error:Execution failed for task ':app:packageDebug'. Duplicate files copied in APK META-INF/notice.txt
的build.gradle
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.0.1"
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/ASL2.0'
}
defaultConfig {
minSdkVersion 7
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:19.0.1'
compile 'com.j256.ormlite:ormlite-android:4.48'
compile 'org.codehaus.jackson:jackson-core-asl:1.9.13'
compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13'
compile 'com.octo.android.robospice:robospice:1.4.11'
compile 'com.octo.android.robospice:robospice-spring-android:1.4.11'
}
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误?
EDITED
这些排除选项解决了我的问题:
packagingOptions …Run Code Online (Sandbox Code Playgroud) 我已经将Android库创建为Android Studio模块.添加为我的根模块的依赖项.编码时,我可以从库包中导入任何类,但在我尝试运行应用程序时,我遇到了错误package some.mylibrary.project does not exist.
build.gradle根模块
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.+'
}
}
apply plugin: 'com.android.application'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile 'com.android.support:appcompat-v7:20.+'
compile 'com.google.android.gms:play-services:5.+'
compile project(':libraries:mylibrary')
}
android {
compileSdkVersion 17
buildToolsVersion "20.0.0"
lintOptions {
disable 'InvalidPackage'
checkReleaseBuilds false
abortOnError false
}
***
}
Run Code Online (Sandbox Code Playgroud)
build.gradle库模块
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'idea'
android {
compileSdkVersion 17 …Run Code Online (Sandbox Code Playgroud) 遇到迁移到Android gradle插件3.0的问题.
项目根目录下的build.gradle文件
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
}
}
Run Code Online (Sandbox Code Playgroud)
Android 应用程序模块build.gradle
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
classpath testDependencies.spoon
}
}
repositories {
maven { url 'https://maven.fabric.io/public' }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
spoon {
debug = true
grantAllPermissions = true
shard = true
}
android {
compileSdkVersion 25
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Run Code Online (Sandbox Code Playgroud)
试图编译一个项目.我收到编译错误.
但是,一旦 …
android android-studio build.gradle android-gradle-plugin android-gradle-3.0
尝试将缓存的 json 字符串反序列化为数据对象并收到异常:kotlinx.serialization.json.internal.JsonDecodingException: Expected class kotlinx.serialization.json.JsonObject (Kotlin reflection is not available) as the serialized body of kotlinx.serialization.Polymorphic<List>, but had class kotlinx.serialization.json.JsonArray (Kotlin reflection is not available)
用于反序列化的代码
internal inline fun <reified R : Any> String.convertToDataClass() =
Json {
ignoreUnknownKeys = true
}.decodeFromString(R::class.serializer(), this)
Run Code Online (Sandbox Code Playgroud)
代码示例:
val jsonString ="""
[{"name1":"value1"}, {"name2":"value2"}]
"""
val dataObject = jsonString.convertToDataClass<List<SomeObject>>()
Run Code Online (Sandbox Code Playgroud)
当通过 Ktor 管道时,一切工作正常,但在尝试反序列化缓存为字符串的相同响应主体时会中断。
我知道这R::class.serializer()被标记为内部使用,但这是我知道如何从字符串内容反序列化泛型的唯一方法。
serialization json deserialization kotlin kotlin-multiplatform
我已经实现了公开 ComposeState<T>实例的 Android 视图模型。例如,查看模型实现:
class MyViewModel<S> {
private val _viewState: MutableState<S> = mutableStateOf(initialState)
val viewState: State<S> = _viewState
...
protected fun setState(newState: S) {
_viewState.value = newState
}
}
Run Code Online (Sandbox Code Playgroud)
我想在单元测试中测试它将设置什么值/状态。只是我想要实现的目标的一个简短示例:
class MyViewModelTest {
@Test
fun `when view model initialized then should emit initial state first`() {
val viewModel = MyViewModel()
assertEquals(InitialState(), viewModel.viewState.value)
}
@Test
fun `when view model interacted then should emit result state`() {
val viewModel = MyViewModel()
val expectedState = NewState()
viewModel.setState(expectedState)
assertEquals(expectedState, viewModel.viewState.value)
}
} …Run Code Online (Sandbox Code Playgroud) PhoneGap版本:2.0.0.Android API级别16(4.0.3版本).提示错误的代码示例:
navigator.geolocation.getCurrentPosition(onSuccess, onError, {enableHighAccuracy:true});
function onSuccess(position) {
console.log('latitude: '+ position.coords.latitude);
console.log('longitude: '+ position.coords.longitude);
}
function onError(error) {
console.log('Appeared error : '+ error.message);
}
Run Code Online (Sandbox Code Playgroud)
总是在模拟器Failed to start Geolocation service中出错,错误代码2.即使通过Android控制台或DDMS发送GPS坐标
Android清单权限:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Run Code Online (Sandbox Code Playgroud) QueryBuilder<Answer, Integer> queryBuilder = helper.getAnswerDao().queryBuilder();
QueryBuilder<Question, Integer> questionQueryBuilder = helper.getQuestionDao().queryBuilder();
questionQueryBuilder.where().eq(Question.TYPE_COLUMN_NAME, "table");
queryBuilder.leftJoin(questionQueryBuilder);
queryBuilder.where().eq(Answer.PICKED_COLUMN_NAME, true);
pickedAnswers = queryBuilder.query();
Run Code Online (Sandbox Code Playgroud)
生成的SQL语句:
SELECT `Answers`.*
FROM `Answers`
LEFT JOIN `Questions` ON `Answers`.`questionId` = `Questions`.`id`
WHERE `Answers`.`picked` = 1
AND (`Questions`.`type` = 'table' )
Run Code Online (Sandbox Code Playgroud)
由于"AND"逻辑运算,此查询返回空结果集.这是ORMLite的默认行为.是否有可能改变"OR"操作与子句结合的地方?
我试过:所有方法queryBuilder.where().or()之前queryBuilder.where().eq(Answer.PICKED_COLUMN_NAME, true)和queryBuilder.where().or(2)之后where().